Skip to content

Bug: All responses on reply screen breaks #2382

Description

@schuyler1d

Describe the bug
Clicking for a first response on main (ff740cc31149964973fccc8f4a9761574a4b5b47) in the script 'white-screen-of-death's

To Reproduce
Steps to reproduce the behavior:

  1. In /app/<org>/todos/<campaign>/reply mode after initial messages have been sent with multiple response optionsj, I get a "white-screen-of-death" javascript error when I click "All Responses" -- I also note that I don't have any button options (see below for full structure)
  2. In dev console I see
Uncaught TypeError: step is null
    renderCurrentStep Survey.jsx:161
    renderSingleQuestion Survey.jsx:253
    render Survey.jsx:265
    React 11
    unstable_runWithPriority scheduler.development.js:653
    React 21
    unstable_runWithPriority scheduler.development.js:653
    React 6
    _callee$ ContactController.jsx:225
    Async Babel
    node_modules bundle.js:442620
    node_modules bundle.js:442561
    Babel 4
    node_modules bundle.js:454702
    node_modules bundle.js:454694
    ContactController ContactController.jsx:231
    updateCurrentContactIndex ContactController.jsx:255
    componentWillMount ContactController.jsx:84
    React 9
    unstable_runWithPriority scheduler.development.js:653
    React 5
    handleStoreChange hooks.cjs:71
    node_modules bundle.js:438198
    onNext hooks.cjs:232
    notifySubscription Observable.js:135
    onNotify Observable.js:179
    next Observable.js:235
    node_modules bundle.js:440857

My current campaign/assignment (getCampaign() graphql response is:

{"data":{"assignment":{"id":"2","userCannedResponses":[],"campaignCannedResponses":[],"texter":{"id":"1","firstName":"Sky","lastName":"Duveen","alias":null,"__typename":"User"},"campaign":{"id":"3","title":"survey test","isArchived":false,"useDynamicAssignment":null,"overrideOrganizationTextingHours":false,"timezone":"US/Eastern","textingHoursStart":9,"textingHoursEnd":21,"textingHoursEnforced":true,"batchSize":300,"organization":{"id":"1","tags":[],"textingHoursEnforced":false,"textingHoursStart":9,"textingHoursEnd":21,"optOutMessage":"I'm opting you out of texts immediately. Have a great day.","allowSendAll":false,"__typename":"Organization"},"customFields":[],"texterUIConfig":{"options":"","sideboxChoices":["celebration-gif","default-dynamicassignment","default-releasecontacts","contact-reference","tag-contact","freshworks-widget","default-editinitial","take-conversations","hide-media","texter-feedback","contact-notes"],"__typename":"TexterUIConfig"},"cannedResponses":[],"interactionSteps":[{"id":"5","script":"test1 autorespond","question":{"text":"is it one?","answerOptions":[{"value":"[yes]","interactionStepId":6,"nextInteractionStep":{"id":"6","script":"blah di blah 1 autorespond","__typename":"InteractionStep"},"__typename":"AnswerOption"},{"value":"not sure","interactionStepId":8,"nextInteractionStep":{"id":"8","script":"but are you actually share? autorespond","__typename":"InteractionStep"},"__typename":"AnswerOption"}],"__typename":"Question"},"__typename":"InteractionStep"},{"id":"6","script":"blah di blah 1 autorespond","question":{"text":"q2-level","answerOptions":[{"value":"[happy] there","interactionStepId":7,"nextInteractionStep":{"id":"7","script":"xyz","__typename":"InteractionStep"},"__typename":"AnswerOption"}],"__typename":"Question"},"__typename":"InteractionStep"},{"id":"7","script":"xyz","question":{"text":"","answerOptions":[],"__typename":"Question"},"__typename":"InteractionStep"},{"id":"8","script":"but are you actually share? autorespond","question":{"text":"sure?","answerOptions":[{"value":"[no]","interactionStepId":9,"nextInteractionStep":{"id":"9","script":"xxx","__typename":"InteractionStep"},"__typename":"AnswerOption"},{"value":"[yes] happy","interactionStepId":10,"nextInteractionStep":{"id":"10","script":"ok great","__typename":"InteractionStep"},"__typename":"AnswerOption"},{"value":"sad but [happy]","interactionStepId":11,"nextInteractionStep":{"id":"11","script":"me too abc","__typename":"InteractionStep"},"__typename":"AnswerOption"}],"__typename":"Question"},"__typename":"InteractionStep"},{"id":"9","script":"xxx","question":{"text":"","answerOptions":[],"__typename":"Question"},"__typename":"InteractionStep"},{"id":"10","script":"ok great","question":{"text":"","answerOptions":[],"__typename":"Question"},"__typename":"InteractionStep"},{"id":"11","script":"me too abc","question":{"text":"","answerOptions":[],"__typename":"Question"},"__typename":"InteractionStep"}],"__typename":"Campaign"},"__typename":"Assignment"}}}

My current guess as to the code that might be related to the issue (based on what's changed recently) is maybe the deepCopy here:
https://github.com/StateVoicesNational/Spoke/blob/main/src/components/AssignmentTexter/Controls.jsx#L128-L130

I will try to debug further

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions