Uploaded image for project: 'ui-eholdings'
  1. ui-eholdings
  2. UIEH-388

BUG: Custom Title: Error when adding a second contributor of the same type

    XMLWordPrintable

Details

    • eHoldings Sprint 40
    • 5
    • Small < 3 days
    • analysis and implementation to resolve the bug. understood this user story does not address if it is a systemic problem.

    Description

      1. Go to folio.frontside.io
      2. Search for title [before title test] or use URL https://folio.frontside.io/eholdings/titles/17290132
      3. Edit record
      4. Add an author Dennis, Miller and an editor Brady, Wayne
      5. Save successfully
      6. Edit same record and add another author Allen, Ed
      7. Hit save and the following error message displays: An unknown error occurred

      Same issue can be reproduced when adding identifiers

      1. Go to folio.frontside.io
      2. Search for title [Mary] or use URL https://folio.frontside.io/eholdings/titles/172364263
      3. Edit record
      4. Add multiple identifiers
      5. Save successfully
      6. Edit same record and add another identifier
      7. Hit save and the following error message displays: An unknown error occurred

      Additional details

      https://okapi.frontside.io/eholdings/resources/123355-2867674-17290132

      request body
      {"data":{"id":"123355-2867674-17290132","type":"resources","attributes":{"description":"","edition":"2nd","isPeerReviewed":true,"isTitleCustom":true,"publisherName":"Wales","titleId":17290132,"contributors":[

      {"type":"editor","contributor":"Brady, Wayne"}

      ,

      {"type":"author","contributor":"Dennis, Miller"}

      ,

      {"type":"author","contributor":"Allen, Ed"}

      ],"identifiers":[

      {"id":"978528641"}

      ],"name":"before title test","publicationType":"Journal","subjects":[],"coverageStatement":"","customEmbargoPeriod":

      {"embargoUnit":null,"embargoValue":0}

      ,"isSelected":true,"managedEmbargoPeriod":

      {"embargoUnit":null,"embargoValue":0}

      ,"packageId":"123355-2867674","packageName":"carole create a custom package - 5","url":"","providerId":123355,"providerName":"API DEV CORPORATE CUSTOMER","visibilityData":

      {"isHidden":false,"reason":""}

      ,"managedCoverages":[],"customCoverages":[

      {"beginCoverage":"2017-04-30","endCoverage":""}

      ]}}}

      Response
      {"status":500,"error":"Internal Server Error","exception":"#\u003cNoMethodError: undefined method `to_sym' for nil:NilClass\u003e","traces":{"Application Trace":[

      {"id":0,"trace":"app/deserializable/deserializable_resource.rb:76:in `block (2 levels) in \u003cclass:DeserializableResource\u003e'"}

      ,

      {"id":1,"trace":"app/deserializable/deserializable_resource.rb:75:in `map'"}

      ,

      {"id":2,"trace":"app/deserializable/deserializable_resource.rb:75:in `block in \u003cclass:DeserializableResource\u003e'"}

      ,

      {"id":23,"trace":"app/controllers/application_controller.rb:55:in `catch_flexirest_exceptions'"}

      ,

      {"id":25,"trace":"app/controllers/application_controller.rb:44:in `catch_repository_errors'"}

      ,

      {"id":27,"trace":"app/controllers/application_controller.rb:37:in `catch_exceptions'"}

      ,

      {"id":66,"trace":"app/middleware/chunked_transfer_decoder.rb:58:in `call'"}

      ],"Framework Trace":[

      {"id":3,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:100:in `deserialize_attr'"}

      ,

      {"id":4,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:92:in `block in deserialize_attrs'"}

      ,

      {"id":5,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:92:in `each'"}

      ,

      {"id":6,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:92:in `map'"}

      ,

      {"id":7,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:92:in `deserialize_attrs'"}

      ,

      {"id":8,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:68:in `deserialize!'"}

      ,

      {"id":9,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:45:in `initialize'"}

      ,

      {"id":10,"trace":"jsonapi-rails (0.3.1) lib/jsonapi/rails/controller.rb:76:in `new'"}

      ,

      {"id":11,"trace":"jsonapi-rails (0.3.1) lib/jsonapi/rails/controller.rb:76:in `block (2 levels) in deserializable_resource'"}

      ,

      {"id":12,"trace":"activesupport (5.1.6) lib/active_support/notifications.rb:168:in `instrument'"}

      ,

      {"id":13,"trace":"jsonapi-rails (0.3.1) lib/jsonapi/rails/controller.rb:74:in `block in deserializable_resource'"}

      ,

      {"id":14,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:413:in `instance_exec'"}

      ,

      {"id":15,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:413:in `block in make_lambda'"}

      ,

      {"id":16,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:178:in `block (2 levels) in halting_and_conditional'"}

      ,

      {"id":17,"trace":"actionpack (5.1.6) lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in \u003cmodule:Callbacks\u003e'"}

      ,

      {"id":18,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:179:in `block in halting_and_conditional'"}

      ,

      {"id":19,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:507:in `block in invoke_before'"}

      ,

      {"id":20,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:507:in `each'"}

      ,

      {"id":21,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:507:in `invoke_before'"}

      ,

      {"id":22,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:106:in `block in run_callbacks'"}

      ,

      {"id":24,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:117:in `block in run_callbacks'"}

      ,

      {"id":26,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:117:in `block in run_callbacks'"}

      ,

      {"id":28,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:117:in `block in run_callbacks'"}

      ,

      {"id":29,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:135:in `run_callbacks'"}

      ,

      {"id":30,"trace":"actionpack (5.1.6) lib/abstract_controller/callbacks.rb:19:in `process_action'"}

      ,

      {"id":31,"trace":"actionpack (5.1.6) lib/action_controller/metal/rescue.rb:20:in `process_action'"}

      ,

      {"id":32,"trace":"actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'"}

      ,

      {"id":33,"trace":"activesupport (5.1.6) lib/active_support/notifications.rb:166:in `block in instrument'"}

      ,

      {"id":34,"trace":"activesupport (5.1.6) lib/active_support/notifications/instrumenter.rb:21:in `instrument'"}

      ,

      {"id":35,"trace":"activesupport (5.1.6) lib/active_support/notifications.rb:166:in `instrument'"}

      ,

      {"id":36,"trace":"actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:30:in `process_action'"}

      ,

      {"id":37,"trace":"actionpack (5.1.6) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'"}

      ,

      {"id":38,"trace":"actionpack (5.1.6) lib/abstract_controller/base.rb:124:in `process'"}

      ,

      {"id":39,"trace":"actionpack (5.1.6) lib/action_controller/metal.rb:189:in `dispatch'"}

      ,

      {"id":40,"trace":"actionpack (5.1.6) lib/action_controller/metal.rb:253:in `dispatch'"}

      ,

      {"id":41,"trace":"actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'"}

      ,

      {"id":42,"trace":"actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:31:in `serve'"}

      ,

      {"id":43,"trace":"actionpack (5.1.6) lib/action_dispatch/journey/router.rb:50:in `block in serve'"}

      ,

      {"id":44,"trace":"actionpack (5.1.6) lib/action_dispatch/journey/router.rb:33:in `each'"}

      ,

      {"id":45,"trace":"actionpack (5.1.6) lib/action_dispatch/journey/router.rb:33:in `serve'"}

      ,

      {"id":46,"trace":"actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:844:in `call'"}

      ,

      {"id":47,"trace":"rack (2.0.5) lib/rack/etag.rb:25:in `call'"}

      ,

      {"id":48,"trace":"rack (2.0.5) lib/rack/conditional_get.rb:38:in `call'"}

      ,

      {"id":49,"trace":"rack (2.0.5) lib/rack/head.rb:12:in `call'"}

      ,

      {"id":50,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'"}

      ,

      {"id":51,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:97:in `run_callbacks'"}

      ,

      {"id":52,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:24:in `call'"}

      ,

      {"id":53,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'"}

      ,

      {"id":54,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'"}

      ,

      {"id":55,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'"}

      ,

      {"id":56,"trace":"railties (5.1.6) lib/rails/rack/logger.rb:36:in `call_app'"}

      ,

      {"id":57,"trace":"railties (5.1.6) lib/rails/rack/logger.rb:24:in `block in call'"}

      ,

      {"id":58,"trace":"activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `block in tagged'"}

      ,

      {"id":59,"trace":"activesupport (5.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'"}

      ,

      {"id":60,"trace":"activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `tagged'"}

      ,

      {"id":61,"trace":"railties (5.1.6) lib/rails/rack/logger.rb:24:in `call'"}

      ,

      {"id":62,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'"}

      ,

      {"id":63,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/request_id.rb:25:in `call'"}

      ,

      {"id":64,"trace":"rack (2.0.5) lib/rack/runtime.rb:22:in `call'"}

      ,

      {"id":65,"trace":"activesupport (5.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'"}

      ,

      {"id":67,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'"}

      ,

      {"id":68,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/static.rb:125:in `call'"}

      ,

      {"id":69,"trace":"rack (2.0.5) lib/rack/sendfile.rb:111:in `call'"}

      ,

      {"id":70,"trace":"railties (5.1.6) lib/rails/engine.rb:522:in `call'"}

      ,

      {"id":71,"trace":"puma (3.11.4) lib/puma/configuration.rb:225:in `call'"}

      ,

      {"id":72,"trace":"puma (3.11.4) lib/puma/server.rb:632:in `handle_request'"}

      ,

      {"id":73,"trace":"puma (3.11.4) lib/puma/server.rb:446:in `process_client'"}

      ,

      {"id":74,"trace":"puma (3.11.4) lib/puma/server.rb:306:in `block in run'"}

      ,

      {"id":75,"trace":"puma (3.11.4) lib/puma/thread_pool.rb:120:in `block in spawn_thread'"}

      ],"Full Trace":[

      {"id":0,"trace":"app/deserializable/deserializable_resource.rb:76:in `block (2 levels) in \u003cclass:DeserializableResource\u003e'"}

      ,

      {"id":1,"trace":"app/deserializable/deserializable_resource.rb:75:in `map'"}

      ,

      {"id":2,"trace":"app/deserializable/deserializable_resource.rb:75:in `block in \u003cclass:DeserializableResource\u003e'"}

      ,

      {"id":3,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:100:in `deserialize_attr'"}

      ,

      {"id":4,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:92:in `block in deserialize_attrs'"}

      ,

      {"id":5,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:92:in `each'"}

      ,

      {"id":6,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:92:in `map'"}

      ,

      {"id":7,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:92:in `deserialize_attrs'"}

      ,

      {"id":8,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:68:in `deserialize!'"}

      ,

      {"id":9,"trace":"jsonapi-deserializable (0.2.0) lib/jsonapi/deserializable/resource.rb:45:in `initialize'"}

      ,

      {"id":10,"trace":"jsonapi-rails (0.3.1) lib/jsonapi/rails/controller.rb:76:in `new'"}

      ,

      {"id":11,"trace":"jsonapi-rails (0.3.1) lib/jsonapi/rails/controller.rb:76:in `block (2 levels) in deserializable_resource'"}

      ,

      {"id":12,"trace":"activesupport (5.1.6) lib/active_support/notifications.rb:168:in `instrument'"}

      ,

      {"id":13,"trace":"jsonapi-rails (0.3.1) lib/jsonapi/rails/controller.rb:74:in `block in deserializable_resource'"}

      ,

      {"id":14,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:413:in `instance_exec'"}

      ,

      {"id":15,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:413:in `block in make_lambda'"}

      ,

      {"id":16,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:178:in `block (2 levels) in halting_and_conditional'"}

      ,

      {"id":17,"trace":"actionpack (5.1.6) lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in \u003cmodule:Callbacks\u003e'"}

      ,

      {"id":18,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:179:in `block in halting_and_conditional'"}

      ,

      {"id":19,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:507:in `block in invoke_before'"}

      ,

      {"id":20,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:507:in `each'"}

      ,

      {"id":21,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:507:in `invoke_before'"}

      ,

      {"id":22,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:106:in `block in run_callbacks'"}

      ,

      {"id":23,"trace":"app/controllers/application_controller.rb:55:in `catch_flexirest_exceptions'"}

      ,

      {"id":24,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:117:in `block in run_callbacks'"}

      ,

      {"id":25,"trace":"app/controllers/application_controller.rb:44:in `catch_repository_errors'"}

      ,

      {"id":26,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:117:in `block in run_callbacks'"}

      ,

      {"id":27,"trace":"app/controllers/application_controller.rb:37:in `catch_exceptions'"}

      ,

      {"id":28,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:117:in `block in run_callbacks'"}

      ,

      {"id":29,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:135:in `run_callbacks'"}

      ,

      {"id":30,"trace":"actionpack (5.1.6) lib/abstract_controller/callbacks.rb:19:in `process_action'"}

      ,

      {"id":31,"trace":"actionpack (5.1.6) lib/action_controller/metal/rescue.rb:20:in `process_action'"}

      ,

      {"id":32,"trace":"actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'"}

      ,

      {"id":33,"trace":"activesupport (5.1.6) lib/active_support/notifications.rb:166:in `block in instrument'"}

      ,

      {"id":34,"trace":"activesupport (5.1.6) lib/active_support/notifications/instrumenter.rb:21:in `instrument'"}

      ,

      {"id":35,"trace":"activesupport (5.1.6) lib/active_support/notifications.rb:166:in `instrument'"}

      ,

      {"id":36,"trace":"actionpack (5.1.6) lib/action_controller/metal/instrumentation.rb:30:in `process_action'"}

      ,

      {"id":37,"trace":"actionpack (5.1.6) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'"}

      ,

      {"id":38,"trace":"actionpack (5.1.6) lib/abstract_controller/base.rb:124:in `process'"}

      ,

      {"id":39,"trace":"actionpack (5.1.6) lib/action_controller/metal.rb:189:in `dispatch'"}

      ,

      {"id":40,"trace":"actionpack (5.1.6) lib/action_controller/metal.rb:253:in `dispatch'"}

      ,

      {"id":41,"trace":"actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'"}

      ,

      {"id":42,"trace":"actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:31:in `serve'"}

      ,

      {"id":43,"trace":"actionpack (5.1.6) lib/action_dispatch/journey/router.rb:50:in `block in serve'"}

      ,

      {"id":44,"trace":"actionpack (5.1.6) lib/action_dispatch/journey/router.rb:33:in `each'"}

      ,

      {"id":45,"trace":"actionpack (5.1.6) lib/action_dispatch/journey/router.rb:33:in `serve'"}

      ,

      {"id":46,"trace":"actionpack (5.1.6) lib/action_dispatch/routing/route_set.rb:844:in `call'"}

      ,

      {"id":47,"trace":"rack (2.0.5) lib/rack/etag.rb:25:in `call'"}

      ,

      {"id":48,"trace":"rack (2.0.5) lib/rack/conditional_get.rb:38:in `call'"}

      ,

      {"id":49,"trace":"rack (2.0.5) lib/rack/head.rb:12:in `call'"}

      ,

      {"id":50,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'"}

      ,

      {"id":51,"trace":"activesupport (5.1.6) lib/active_support/callbacks.rb:97:in `run_callbacks'"}

      ,

      {"id":52,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/callbacks.rb:24:in `call'"}

      ,

      {"id":53,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'"}

      ,

      {"id":54,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'"}

      ,

      {"id":55,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'"}

      ,

      {"id":56,"trace":"railties (5.1.6) lib/rails/rack/logger.rb:36:in `call_app'"}

      ,

      {"id":57,"trace":"railties (5.1.6) lib/rails/rack/logger.rb:24:in `block in call'"}

      ,

      {"id":58,"trace":"activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `block in tagged'"}

      ,

      {"id":59,"trace":"activesupport (5.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'"}

      ,

      {"id":60,"trace":"activesupport (5.1.6) lib/active_support/tagged_logging.rb:69:in `tagged'"}

      ,

      {"id":61,"trace":"railties (5.1.6) lib/rails/rack/logger.rb:24:in `call'"}

      ,

      {"id":62,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'"}

      ,

      {"id":63,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/request_id.rb:25:in `call'"}

      ,

      {"id":64,"trace":"rack (2.0.5) lib/rack/runtime.rb:22:in `call'"}

      ,

      {"id":65,"trace":"activesupport (5.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'"}

      ,

      {"id":66,"trace":"app/middleware/chunked_transfer_decoder.rb:58:in `call'"}

      ,

      {"id":67,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/executor.rb:12:in `call'"}

      ,

      {"id":68,"trace":"actionpack (5.1.6) lib/action_dispatch/middleware/static.rb:125:in `call'"}

      ,

      {"id":69,"trace":"rack (2.0.5) lib/rack/sendfile.rb:111:in `call'"}

      ,

      {"id":70,"trace":"railties (5.1.6) lib/rails/engine.rb:522:in `call'"}

      ,

      {"id":71,"trace":"puma (3.11.4) lib/puma/configuration.rb:225:in `call'"}

      ,

      {"id":72,"trace":"puma (3.11.4) lib/puma/server.rb:632:in `handle_request'"}

      ,

      {"id":73,"trace":"puma (3.11.4) lib/puma/server.rb:446:in `process_client'"}

      ,

      {"id":74,"trace":"puma (3.11.4) lib/puma/server.rb:306:in `block in run'"}

      ,

      {"id":75,"trace":"puma (3.11.4) lib/puma/thread_pool.rb:120:in `block in spawn_thread'"}

      ]}}

      TestRail: Results

        Attachments

          Issue Links

            Activity

              People

                SamKeathley Sam
                kgambrell Khalilah Gambrell
                Khalilah Gambrell Khalilah Gambrell
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  TestRail: Runs

                    TestRail: Cases