The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results forΒ 
Search instead forΒ 
Did you mean:Β 

Sandbox to production deployment in Jira Cloud: a first field report (and one silent gap)

For reference: the official Jul 27 to Aug 3 Cloud changes roundup lists configuration deployment as Rolling Out, so this is now citable from Atlassian's own release notes, not only the changelog. Test a change in your sandbox, scan, validate, deploy it onward, with a log of who deployed what and when.

I ran one end to end the same day πŸš€ An 18-minute scan, 461 changes found, one workflow deployed. This is what the announcements will not tell you: the real numbers, what the scanner actually sees, and one gap that deserves a place in your deployment checklist from day one πŸ‘‡

The setup, honestly declared. The feature deploys from a sandbox to its production or to another sandbox, and the destination picker offers both (you will see it in the first screenshot). For this first run I deliberately did NOT deploy to production: I used two Jira sandboxes in Atlassian's own recommended pattern, one as development and a fresh production copy as staging, and deployed dev to staging. Same feature, same scanner, same validation and log, just aimed at a rehearsal target first, which is exactly how Atlassian's docs suggest complex deployments should be run before production ever sees one. The test payload: a copy of a real production workflow, renamed, assigned to nothing, and deliberately kept with its Marketplace app post functions and validators. Whether app rules survive deployment is documented nowhere, and I wanted the answer.

The numbers first πŸ“Š

⏱️ The scan took 18 minutes on a mature org. Plan for coffee, not for a click.

πŸ” It found 461 changes: 214 added, 247 modified. Before that number alarms you, here is what it means. The scan is a diff: it compares every supported configuration entity in the source against the destination and lists every one that differs. Added means it exists in the source but not the destination; Modified means it exists in both but is not identical. Nothing on the list deploys unless you select it (I selected exactly one workflow out of the 461). So why so many between two copies of the same production? Time. My dev sandbox was copied from production weeks ago, my staging sandbox is a fresh copy, and production never stopped evolving in between. 461 is not a benchmark, it is one org's drift on one day: yours might be 40 or 4,000 depending on your configuration size, how old your sandbox copy is, and how fast your production evolves. Whatever it is, it is the honest size of your drift, made countable for the first time, and I suspect most orgs will be surprised by theirs.

βœ… Selecting 1 workflow auto-selected 2 entities. Validation took about 5 minutes, and the deployment itself completed in a couple of minutes, named, timestamped, and attributed in the deployment log.

fig1-destination-picker.png

What the scanner shows you

fig2-scan-overview.png

 

The change list groups everything by entity type (automation rule configs, fields, filters, statuses, permission schemes, projects, boards, screens, workflows and their schemes) with filters by entity type, by space, and by change type. Two observations from reading it closely:

  1. It quantifies drift you could never see before. Sixty-nine filters and over a hundred boards showing as changed between environments is not a deployment problem, it is a visibility gift 🎁 This list is worth generating even if you never press deploy.
  2. A charming detail for long-time admins: some entity groups surface Jira's internal names. Boards appear as Rapid View, a name most of us last saw in REST payloads πŸ˜„ The scanner is clearly reading the configuration layer directly.

 

fig3-workflow-selected.png

Dependencies: the graph is real πŸ•ΈοΈ

Selecting my test workflow automatically selected one more entity: the custom field the workflow's rules reference. The side panel shows each entity's change type, its dependencies, and a Used by view, and dependencies are selected for you, so a workflow cannot arrive missing the field it writes to.

fig4-dependencies.png

What the dependency graph did not list is the interesting part. We will get there.

The gates are genuinely good πŸ›‘οΈ

Before anything deploys: a validation pass checks every selected entity, with a per-entity Ready for deployment status and a Contains errors filter for anything that fails. Then a plainly worded confirmation: deployed changes in the destination cannot be rolled back. Then a progress view, and a log entry: named deployment, destination, deployed by, deployed on, status.

If your change advisory board has ever asked how a Jira config change is evidenced, this is finally a real answer πŸ“‹

fig5-validation-ready.png

fig6-no-rollback.png

My deployment: both entities validated clean, zero errors, deployed successfully. The workflow arrived in staging exactly as designed: correct layout, correct statuses, and inactive, since deployment does not assign it anywhere.

fig7-deploy-progress.png

 

The silent gap: marketplace app rules partially survived ⚠️

Now the part I ran this experiment to learn. The test workflow carried Marketplace app post functions and validators. After a fully green deployment, zero errors, zero warnings, I opened the deployed workflow on the destination and compared the rules by hand.

Some of the marketplace app-provided configuration arrived. Some did not arrive at all. And nothing in the scan, the validation, or the deployment result mentioned the difference.

To be precise about scope: one org, one workflow, one app stack, a Beta feature. Your results may differ, and I would genuinely like to hear them. But the pattern it establishes is the checklist line that matters: the validator checks Atlassian's entities, not the internals of app-provided rules. A green deployment is not evidence that your app rules travelled. The docs' unsupported-operations list covers locked and app-managed custom fields, but says nothing either way about app workflow rules, which makes this exactly the kind of gap only a field test finds.

So, the discipline: after deploying any workflow that carries Marketplace rules, open it on the destination and diff the post functions and validators against the source, rule by rule. Two minutes, and the only way to know βœ…

What the documentation does warn about πŸ“š

Reading the full docs family alongside the experiment, the pattern is that the tool is additive-biased: additions deploy well, removals mostly do not. Removing a custom field option, a default value, a status from a workflow, a work type from a scheme: all excluded, all "do it manually on the destination." You can promote new configuration; you cannot promote a cleanup.

Add the smaller surprises: new filters arrive on the destination as private regardless of source permissions, automation rules deploy but their connections need rewiring, media does not travel (request type icons included), project names and keys do not update, and team-managed entities are not supported at all. And one line from the docs that retires an old habit: Atlassian now explicitly recommends against cloud-to-cloud copying sandbox data upward to production.

Verdict 🏁

This is the beginning of real change management for Jira configuration, and I mean that without irony: named deployments, dependency awareness, pre-flight validation, and an audit log where "recreate it by hand in production and hope" used to live. It is also a Beta with sharp edges, and the sharpest one is silent. Rehearse in a staging sandbox first, exactly as the docs recommend, then deploy, then verify what deployed, especially anything an app put inside your workflows.

If you run your first scan, tell me your change count in the comments πŸ‘‡ And if you deploy a workflow with marketplace app rules, tell me whether yours travelled whole. A handful of reports here would map this better than any of us can alone.

Sources, all read 4 and 5 August 2026: Atlassian Cloud changes, Jul 27 to Aug 3, Deploy data from sandboxes, Deploy configuration changes from a sandbox, Data deployed from sandboxes, Recommended workflow for complex deployments, plus an end-to-end deployment run on a live Enterprise org, 5 August 2026.

9 comments

Comments for this post are closed

Community moderators have prevented the ability to post new comments.

Apryl Harris
Contributor
August 5, 2026

@Sami Shaik - Thank you for the detail!

I do like that Atlassian is trying to align with standard change management practices with this enhancement. 

Like you mentioned, maybe this will work best for new but for edited/changed configs, I'm not sold yet.


Like β€’ Sami Shaik likes this
Sami Shaik
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
August 6, 2026

@Apryl Harris 

Thank you! And honestly, your instinct about edited configs deserves to be taken seriously πŸ‘

Because the documentation quietly agrees with you.

New configuration is the clean case: additions deploy beautifully βœ…

Edited configuration is where the sharp edges live πŸ‘‡

The unsupported-operations list shows that removals inside modified entities mostly do not travel. A deleted field option, a removed status, a dropped work type: they all stay on the destination until you remove them by hand.

And my app-rules finding above sits in the same category: a modified entity, fully green deployment, parts silently missing 🀐

So "not sold yet on edited configs" is not skepticism. It is the correct current posture 🎯

New config: promote with confidence. Edited config: deploy, then verify.

If you do trial an edited-config deployment, I would genuinely value your report here, especially anything the scan showed as Modified that did not arrive whole πŸ™

Like β€’ # people like this
Rachit Singhal
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
September 1, 2026

After using this, many of the custom fields are showing migrated which are same name. This behavior look similar to Data Transfer which is used to migrate data between two cloud site.

 

Does anyone has idea about it? How to avoid it or everytime, we will use it, we need to do post implementation activity of custom field merge?

Like β€’ Sami Shaik likes this
Sami Shaik
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
September 1, 2026

@Rachit Singhal , that "(migrated)" suffix is a specific signature, and it tells us which path your fields took. The suffix is what cloud-to-cloud copy appends when a custom field on the source cannot be matched to one on the destination, and matching there is stricter than the name: the field is merged only when the name and the underlying properties (type, description, options) are identical, so even a one-word description difference produces a duplicate. That behaviour is tracked in JRACLOUD-82762, and it is exactly why Atlassian does not recommend cloud-to-cloud data copy for sandbox to production.

So first question back to you: did the duplicates appear after Deploy changes (the Sandbox Configuration Deployment feature this article is about, with its comparison and pre-flight step), or after a copy data operation? If it was copy data, the suffix is expected and the fix is to use Deploy changes instead. If it was Deploy changes, that is worth documenting here, because the feature is meant to compare entities before creating them.

Either way, two things reduce the risk before the next run: keep the sandbox created from a full production copy rather than a partial one, since identifiers such as customfield IDs are only guaranteed to match after a full copy and drift over time; and before deploying, make sure the field's name, type and description are byte-identical in both environments. On cleanup: there is no native merge for duplicate custom fields in Jira Cloud, so the honest route is to bulk-move values into the surviving field (bulk edit or CSV round trip), re-point screens and automation, then delete the "(migrated)" copy. Tell me which path you used and I will refine this.

Adithya Ramesh
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 1, 2026

Hey @Sami Shaik ! Thank you for the amazing write-up, and for the great feedback around the capability! We are actively making improvements around some of the areas you called out - you should see a noticeable improvement in the time taken for the scan and validation over the next few months (and fixes to some of the legacy language you rightly caught! :D) 

Agree that marketplace apps config are still a gap - we currently don't have a solution for it just yet - we are yet to arrive at a scalable model for moving marketplace app data and config, but we are actively working on that. 

Appreciate you taking the time out to test it out so comprehensively and sharing it with the community! 

Like β€’ Sami Shaik likes this
Adithya Ramesh
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 1, 2026

Hey @Rachit Singhal ! 

One of the prerequisites to using the capability is to have performed a "Copy All projects" from your production to your sandbox before the cutoff dates (available here). If this has been done, we would be able to identify when a particular config is updated - even if you change it's name or description, and ensure that the changes override the production config accurately. 

However, if this is not done, we will not be able to track configs across environments, which would result in duplicate entities being created with the (migrated) suffix. 

Can you help with the information around whether you've done this before using the capability? If you have, please shoot me an email at aramesh@atlassian.com - I'd be able to investigate why this occurred. 


Like β€’ Sami Shaik likes this
Sami Shaik
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
September 2, 2026

@Adithya Ramesh , thank you, and thank you for answering @Rachit Singhal question directly; "Copy All projects before the cutoff" is the prerequisite most of us would have missed, and it explains the "(migrated)" duplicates cleanly.

It means a lot to hear the scan and validation time and the legacy language are being worked on; I will happily re-run the field test when a build lands and update the article so it reflects the current experience rather than the first one.

On the marketplace apps configuration gap, since you agree it is real: the practical shape admins need is not "deploy the app's config" (I understand that is the vendor's data), it is a pre-flight line item per installed app that says "this space uses App X; App X configuration is not part of this deployment; here is what to check on the production side." Today the tool is silent on apps, so the first sign is a broken macro or a missing field after go-live. Even a warning list without any action would move it from a surprise to a checklist. If it helps to have that written up in a suggestion, point me at the right place and I will file it with the examples from this thread.

Like β€’ Adithya Ramesh likes this
Adithya Ramesh
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 3, 2026

Thanks for the feedback Sami. I definitely agree that it'd help to have these marketplace app related shortcomings surfaced before the deployment is undertaken so that you can take informed decisions based on that. I created this ticket to track this suggestion - would be great if you could please add your experience in the comments, and watch the ticket to receive updates when we introduce this. Thanks again! 

Like β€’ Sami Shaik likes this
Sami Shaik
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
September 6, 2026

@Adithya Ramesh , thank you for turning it into a ticket, that is the outcome I was hoping for. I have added my experience on CLOUD-13019 in the shape we discussed (which app-owned configuration was silent in the pre-flight, and the three lines an admin would need to see: a per-app reference line in the pre-flight, a parity check that the app exists on the target, and a post-deployment list of the entities that carried app references), and I am watching it.

For anyone reading this article who hit the same gap: the suggestion is https://jira.atlassian.com/browse/CLOUD-13019 and it is at Gathering Interest, which means votes and comments from different domains are what move it. Please add your own case there rather than repeating mine.

Comments for this post are closed

Community moderators have prevented the ability to post new comments.

TAGS
AUG Leaders

Atlassian Community Events