Empty context parameters

Hello all,

We noticed today that context parameters in atlassian descriptor are empty, in our case it’s project id. Context parameters are not visible only in dialogs opened by AP.dialog.create method. We’ve been using this context parameter for months without issues. Here you can see how we use it:

            {
                "url": "/any-url?projectId={project.id}",
                "options": {
                    "size": "large",
                    "header": {
                        "value": "Dialog title"
                    }
                },
                "key": "dialog-key"
            },

It’s critical issue for us due to part of our clients can not use the main feature of application.
Moreover this issue does not appear on every Jira Cloud instance. We suppose the bug appears on instances where loading plugin changes was introduced. We guess because of new view (spinner).

We’ve examined this issue and notice that there are changes in iframe. Below you can see iframe’s (when context parameter is empty) property name content:

{"extension_id":"<EXT-ID>","api":{"_globals":{"request":{"args":["a","e"],"returnsPromise":false}},"messages":{"clear":{"args":["a"],"returnsPromise":false},"onClose":{"args":["a","c"],"returnsPromise":false},"generic":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"error":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"warning":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"success":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"info":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"hint":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}}},"flag":{"create":{"constructor":{"args":["a","b"],"returnsPromise":false},"close":{"args":[],"returnsPromise":false}}},"dialog":{"create":{"constructor":{"args":["a","c"],"returnsPromise":false},"_construct":{"args":[],"returnsPromise":false}},"close":{"args":["a","c"],"returnsPromise":false},"getCustomData":{"args":["a"],"returnsPromise":false},"getButton":{"constructor":{"args":["a","c"],"returnsPromise":false},"enable":{"args":[],"returnsPromise":false},"disable":{"args":[],"returnsPromise":false},"toggle":{"args":[],"returnsPromise":false},"isEnabled":{"args":["a"],"returnsPromise":false},"trigger":{"args":["a"],"returnsPromise":false},"hide":{"args":[],"returnsPromise":false},"show":{"args":[],"returnsPromise":false},"isHidden":{"args":["a"],"returnsPromise":false}},"createButton":{"constructor":{"args":["a","c"],"returnsPromise":false}}},"inlineDialog":{"hide":{"args":["a"],"returnsPromise":false}},"env":{"getLocation":{"args":["a"],"returnsPromise":false},"resize":{"args":["a","c","b"],"returnsPromise":false},"sizeToParent":{"args":[],"returnsPromise":false},"hideFooter":{"args":["a"],"returnsPromise":false}},"events":{"emit":{"args":["a"],"returnsPromise":false},"emitPublic":{"args":["a"],"returnsPromise":false}},"_analytics":{"trackDeprecatedMethodUsed":{"args":["a","c"],"returnsPromise":false}},"scrollPosition":{"getPosition":{"args":["a"],"returnsPromise":false},"setVerticalPosition":{"args":["a","c"],"returnsPromise":false}},"dropdown":{"create":{"args":["a","c"],"returnsPromise":false},"showAt":{"args":["a","c","b","d"],"returnsPromise":false},"hide":{"args":["a"],"returnsPromise":false},"itemDisable":{"args":["a","c"],"returnsPromise":false},"itemEnable":{"args":["a","c"],"returnsPromise":false}},"cookie":{"save":{"args":["a","d","e"],"returnsPromise":false},"read":{"args":["a","d"],"returnsPromise":false},"erase":{"args":["a"],"returnsPromise":false}},"history":{"_registerWindowListeners":{"args":[],"returnsPromise":false},"back":{"args":["a"],"returnsPromise":false},"forward":{"args":["a"],"returnsPromise":false},"go":{"args":["a"],"returnsPromise":false},"getState":{"args":["a","g"],"returnsPromise":false},"pushState":{"args":["a","g"],"returnsPromise":false},"replaceState":{"args":["a","g"],"returnsPromise":false}},"navigator":{"getLocation":{"args":["a"],"returnsPromise":false},"go":{"args":["a","b","c"],"returnsPromise":false},"reload":{"args":[],"returnsPromise":false}},"user":{"getUser":{"args":["a"],"returnsPromise":false},"getCurrentUser":{"args":["a"],"returnsPromise":false},"getTimeZone":{"args":["a"],"returnsPromise":false},"getLocale":{"args":["a"],"returnsPromise":false}},"context":{"getToken":{"args":["a"],"returnsPromise":true},"getContext":{"args":["a"],"returnsPromise":true}},"jira":{"refreshIssuePage":{"args":[],"returnsPromise":false},"updateIssueGlance":{"args":["a","b"],"returnsPromise":false},"getWorkflowConfiguration":{"args":["b"],"returnsPromise":false},"_submitWorkflowConfigurationResponse":{"args":["a","c"],"returnsPromise":false},"isDashboardItemEditable":{"args":["b"],"returnsPromise":false},"openCreateIssueDialog":{"args":["e","b"],"returnsPromise":false},"setDashboardItemTitle":{"args":["b","c"],"returnsPromise":false},"openDatePicker":{"args":["a","c"],"returnsPromise":false},"initJQLEditor":{"args":[],"returnsPromise":false},"showJQLEditor":{"args":["a","d"],"returnsPromise":false}},"dropdownList":{"create":{"constructor":{"args":["a"],"returnsPromise":false},"showAt":{"args":["a","b","l"],"returnsPromise":false},"setItems":{"args":["a","b"],"returnsPromise":false},"hide":{"args":[],"returnsPromise":false},"moveUp":{"args":[],"returnsPromise":false},"moveDown":{"args":[],"returnsPromise":false},"query":{"args":["a"],"returnsPromise":false},"select":{"args":[],"returnsPromise":false},"isVisible":{"args":["a"],"returnsPromise":false},"getSelected":{"args":["a"],"returnsPromise":false},"onHide":{"args":[],"returnsPromise":false},"onSelect":{"args":[],"returnsPromise":false}}}},"origin":"<URL>","options":{"customData":{"templateType":"CREATE","projId":"10002"},"isDialog":true,"dialogId":"24472e14","preventDialogCloseOnEscape":true,"hideIframeUntilLoad":true,"history":{"state":""},"uniqueKey":"<DIALOG-KEY>","origin":"<URL>","hostOrigin":"<URL>","moduleType":"dialogs","isFullPage":false,"autoresize":true,"user":{"timeZone":"Europe/Warsaw"},"productContext":{"ac.projId":"10002","ac.templateType":"CREATE"},"structuredContext":{"license":{"active":true}},"contextJwt":"<JWT-HERE>","contextPath":"","width":"100%","height":"100%","targets":{"env":{"resize":"both"}},"contentClassifier":"","globalOptions":{"crev":"1.2.29"}}}

And here you can see also property name content, but from working good iframe (opened from view issue screen):

{"extension_id":"<EXT-ID>","api":{"_globals":{"request":{"args":["a","e"],"returnsPromise":false}},"messages":{"clear":{"args":["a"],"returnsPromise":false},"onClose":{"args":["a","c"],"returnsPromise":false},"generic":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"error":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"warning":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"success":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"info":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}},"hint":{"constructor":{"args":["c","b","d","e"],"returnsPromise":false}}},"flag":{"create":{"constructor":{"args":["a","b"],"returnsPromise":false},"close":{"args":[],"returnsPromise":false}}},"dialog":{"create":{"constructor":{"args":["a","c"],"returnsPromise":false}},"close":{"args":["a","c"],"returnsPromise":false},"getCustomData":{"args":["a"],"returnsPromise":false},"getButton":{"constructor":{"args":["a","c"],"returnsPromise":false},"enable":{"args":[],"returnsPromise":false},"disable":{"args":[],"returnsPromise":false},"toggle":{"args":[],"returnsPromise":false},"isEnabled":{"args":["a"],"returnsPromise":false},"trigger":{"args":["a"],"returnsPromise":false},"hide":{"args":[],"returnsPromise":false},"show":{"args":[],"returnsPromise":false},"isHidden":{"args":["a"],"returnsPromise":false}},"createButton":{"constructor":{"args":["a","c"],"returnsPromise":false}}},"inlineDialog":{"hide":{"args":["a"],"returnsPromise":false}},"env":{"getLocation":{"args":["a"],"returnsPromise":false},"resize":{"args":["a","c","b"],"returnsPromise":false},"sizeToParent":{"args":[],"returnsPromise":false},"hideFooter":{"args":["a"],"returnsPromise":false}},"events":{"emit":{"args":["a"],"returnsPromise":false},"emitPublic":{"args":["a"],"returnsPromise":false}},"_analytics":{"trackDeprecatedMethodUsed":{"args":["a","c"],"returnsPromise":false}},"scrollPosition":{"getPosition":{"args":["a"],"returnsPromise":false},"setVerticalPosition":{"args":["a","c"],"returnsPromise":false}},"dropdown":{"create":{"args":["a","c"],"returnsPromise":false},"showAt":{"args":["a","c","b","d"],"returnsPromise":false},"hide":{"args":["a"],"returnsPromise":false},"itemDisable":{"args":["a","c"],"returnsPromise":false},"itemEnable":{"args":["a","c"],"returnsPromise":false}},"cookie":{"save":{"args":["a","d","e"],"returnsPromise":false},"read":{"args":["a","d"],"returnsPromise":false},"erase":{"args":["a"],"returnsPromise":false}},"history":{"_registerWindowListeners":{"args":[],"returnsPromise":false},"back":{"args":["a"],"returnsPromise":false},"forward":{"args":["a"],"returnsPromise":false},"go":{"args":["a"],"returnsPromise":false},"getState":{"args":["a","g"],"returnsPromise":false},"pushState":{"args":["a","g"],"returnsPromise":false},"replaceState":{"args":["a","g"],"returnsPromise":false}},"navigator":{"getLocation":{"args":["a"],"returnsPromise":false},"go":{"args":["a","b","c"],"returnsPromise":false},"reload":{"args":[],"returnsPromise":false}},"user":{"getUser":{"args":["a"],"returnsPromise":false},"getCurrentUser":{"args":["a"],"returnsPromise":false},"getTimeZone":{"args":["a"],"returnsPromise":false},"getLocale":{"args":["a"],"returnsPromise":false}},"context":{"getToken":{"args":["a"],"returnsPromise":true},"getContext":{"args":["a"],"returnsPromise":true}},"jira":{"refreshIssuePage":{"args":[],"returnsPromise":false},"updateIssueGlance":{"args":["a","b"],"returnsPromise":false},"getWorkflowConfiguration":{"args":["b"],"returnsPromise":false},"_submitWorkflowConfigurationResponse":{"args":["a","c"],"returnsPromise":false},"isDashboardItemEditable":{"args":["b"],"returnsPromise":false},"openCreateIssueDialog":{"args":["e","b"],"returnsPromise":false},"setDashboardItemTitle":{"args":["b","c"],"returnsPromise":false},"openDatePicker":{"args":["a","c"],"returnsPromise":false},"initJQLEditor":{"args":[],"returnsPromise":false},"showJQLEditor":{"args":["a","d"],"returnsPromise":false}},"dropdownList":{"create":{"constructor":{"args":["a"],"returnsPromise":false},"showAt":{"args":["a","b","l"],"returnsPromise":false},"setItems":{"args":["a","b"],"returnsPromise":false},"hide":{"args":[],"returnsPromise":false},"moveUp":{"args":[],"returnsPromise":false},"moveDown":{"args":[],"returnsPromise":false},"query":{"args":["a"],"returnsPromise":false},"select":{"args":[],"returnsPromise":false},"isVisible":{"args":["a"],"returnsPromise":false},"getSelected":{"args":["a"],"returnsPromise":false},"onHide":{"args":[],"returnsPromise":false},"onSelect":{"args":[],"returnsPromise":false}}}},"origin":"<URL>","options":{"size":"large","chrome":false,"productContext":{"issue.key":"DDD-3","project.key":"DDD","project.id":"10002","issue.id":"10006","issuetype.id":"10003"},"structuredContext":{"license":{"active":true},"jira":{"issue":{"issuetype":{"id":"10003"},"key":"DDD-3","id":"10006"},"project":{"key":"DDD","id":"10002"}}},"contextJwt":"<JWT>","isDialog":true,"dialogId":"webitem-2d83c1cc","preventDialogCloseOnEscape":false,"hideIframeUntilLoad":true,"history":{"state":""},"uniqueKey":"<DIALOG-KEY>","origin":"<URL>","hostOrigin":"<URL>","moduleType":"dialogs","isFullPage":false,"autoresize":true,"user":{"timeZone":"Europe/Warsaw"},"contextPath":"","width":"100%","height":"100%","targets":{"env":{"resize":"both"}},"contentClassifier":"","globalOptions":{"crev":"1.2.29"}}}

Notice: unnecessary data was replaced, data is from the same dialog opened from differents context.

Any insights on what’s going on and confirmation if anyone also encountered such a problem will be appreciated.

Cheers,
Kamil Klimek.

2 Likes

We are suffering from this issue at Easy Agile as well. It manifests as a lack of the board.id context parameter not being passed on.

1 Like

I think this might be related too: AP.context.getContext() not returning the current project info
We were seeing project ids missing from urls and the jwt context

Hi,
it was a bug connected with changes in the way how the iframe was created but it should be fixed right now.
Could you please confirm that it’s working properly for you?
Regards,
Paweł Racki

Was there a public posting of this (outside of this)?

2 Likes

Hi @PawelRacki, we will follow up with Easy Agile customers today and confirm it is fixed.

Can you please create and share a JAC / EAN ticket so we can share with our affected customers. Ideally with a root cause analysis on how the team identified the issue and what caused it in the first place.

FWIW, I keep feeling like Atlassian teams are rolling out changes without watching metrics. I’d love to understand the go-to-production process for the team better.

Thank you,
Nick Muldoon, Easy Agile

cc/ @WarrenChen, @msuntinger, @neil

4 Likes

My understanding was that our Cloud test instances were flagged to be in the first cohort to receive updates but this doesn’t seem to be happening in practice.

We’ve had a number of production outages in the last week due to bugs in Jira Cloud that we only know about when the support requests start coming in, we’re also unable to reproduce the problems on any of our own instances.

1 Like

This affects our customers as well and I have reported it on Monday as DEVHELP-3645 but there has been no response. In our case it was a dialog opened in a Service Desk request view that was missing context parameters.

We have followed up with the customer to check if this is now fixed for them. Will report back as soon as we have more details.

@PawelRacki can we please get some insights as to why we vendors keep having to notify Atlassian that their products are broken?
This seems like such a glaringly obvious bug that testing/metrics should have caught this, no?
Furthermore, why is there no public acknowledgement anywhere (status page perhaps) that there was broken code in production that would impact functionality. From a vendor perspective, while this was going on, we wasted time and effort on support because Atlassian screwed up. If there was a public acknowledgement, at least we could have pointed customers to it.

I created a public facing issue ACJIRA-1992 for this bug, we’ll post any further updates there.

Thanks for that @mszerszynski. The bug affects more than Dialogs. It also impacts parameters passed to Jira Project Page web items. Could you update the issue or create another one covering that use-case of context parameters?

Thanks!

@PawelRacki @mszerszynski at least for one of our customers the problem seems to persist. Please take note of DEVHELP-3645.

Hi @tbinna. This issue is not related to this bug. It’s more of a service desk issue

@PawelRacki not sure about the implementation details of Connect but the effect seems to be exactly the same (context parameters are missing). Do you mind forwarding DEVHELP-3645 to someone with Service Desk dev or Service Desk support? This customer currently can’t use a core feature of my app.

@PawelRacki there’s another issue with the context? Can we please get the details so that we can ascertain of it’s impact?

@edave I’ll update issue shortly.

@tbinna I’ve reached out to service desk support and asked them to take a look into this issue.

@danielwester There was an issue with the context caused by the changes introduced recently. There shouldn’t be any anymore since the change has been reverted.

1 Like

@tbinna - I’ve looked at DEVHELP-3645. Used your descriptor as attached on my test instance, and all fields populated properly. Can you please verify that it’s working for you as well?

1 Like

Thanks for looking into this, @nmansilla. I never managed to reproduce this myself but will check with the customer if it’s fixed for them and report back

@nmansilla, the customer just got back to me and says that it still does not work. I assume this issue only affects a handful of instances because we don’t have any other customers reporting this problem. Having said that, I am not sure what else I could do form our end to get this resolved.

Are you seeing requests in your backend service logs that contain requests without the context parameters?

AFAIK, there should be zero instances that are experiencing this issue right now (related to this exact issue identified and fixed by @PawelRacki).