Quick test: without looking, how many custom fields does your instance have?
Many admins guess somewhere between 50 and 100. Then they open the admin screen and find 400. I've seen instances with tens of thousands (yes, you read that right). Nobody planned for that. It just happened, one reasonable request or Cloud-to-Cloud merge at a time.
Custom field sprawl is the most common configuration problem in Jira, and it's also the most fixable. Here's a manual audit process you can run in an afternoon, no apps required.
Three reasons, usually in combination:
Every team requests fields, and saying yes is easier than pushing back
Nobody ever deletes anything, because nobody is sure what's safe to delete
Admin turnover: the person who knew why "Region_v2_FINAL" exists left in 2023
The cost is real. Every field with a global context loads on every issue. Field pickers get longer, screens get slower, and users start filling in the wrong "Start Date" because three of them exist.
For years, sprawl was a someday problem. Not anymore. Atlassian now enforces hard limits in Jira Cloud: 700 fields per field configuration and 150 work types per scheme. Cross the field line and you're blocked from associating new fields until you clean up. And another wave of limits and guardrails lands in September 2026.
The catch most admins miss: the 700 limit isn't really per project. It's calculated from the field configurations associated with your projects. If 300 projects share one field configuration scheme, they share one field-budget. One team's sprawl becomes everyone's ceiling.
Atlassian shipped tooling alongside the limits. The field configuration schemes page now shows field counts, warns you as you approach the limit, and offers an Optimize scheme flow to strip unused fields and create leaner scheme variants. If you haven't looked at that screen since last year, start there. It also makes the rest of this audit easier.
Go to Settings > Work Items > Fields. This screen has improved a lot: you can now see screen count and context per field, and sort by them.
For anything beyond eyeballing, pull the list via the REST API:
GET /rest/api/3/fieldThis returns every field, including type, schema, and scope. Drop it into a spreadsheet. That spreadsheet is your audit workspace for the rest of this exercise. Keep the scope attribute, it matters in step 5.
Sort your spreadsheet by field name. Duplicates jump out immediately:
Same name, different capitalization ("Start Date" vs "Start date")
Same concept, different wording ("Client", "Customer", "Account Name")
Versioned names ("Priority_v2", "Priority - NEW")
Flag every cluster. You can't merge them yet (Jira has no native field merge), but you can pick a survivor per cluster and mark the rest for retirement.
A field on 12 screens might still hold zero data. For each suspect field, run the following in the JQL search:
"Field Name" is not EMPTYThe result count tells you whether the field carries real data or is just furniture. Don't run this for all 400 fields; run it for your duplicate clusters and for anything with zero screens. That usually covers the worst offenders.
This is the step most audits skip, and it's the highest value one. On the custom fields screen, check each field's context. A field with a global context applies to every project and every issue type, whether they need it or not.
Fields created in a hurry almost always get global contexts, because it's the default path. Restricting a field to the projects that actually use it is often a bigger performance and usability win than deleting fields outright. And with the 700 limit calculated at the field configuration level, context discipline is now how you protect your budget.
Team-managed projects are the blind spot in most audits. Their fields are created by project admins, inside the project itself (Space settings > Work types > Select your work type), with no global admin approval and no field configuration involved.
What that means in practice:
Every team-managed field is a real, distinct custom field in your instance. If five projects each created a field called "Client", that's five fields with five silos of data that will never report together in JQL.
They have their own, much lower limit: 50 fields per team-managed project.
They show up in your API export with a project scope. Filter your spreadsheet on the scope attribute to separate them from company-managed fields. The count that's left is often the surprise of the whole audit.
You can't clean these up centrally, field decisions live with each project's admin. What you can do is find the outliers (a team-managed project at 45 fields is a company-managed project in denial) and start the conversation with that team.
For fields with no screens and no values: Jira Cloud moves deleted custom fields to trash, and you can restore within 60 days. That safety net means you don't need to be paralyzed by "what if something breaks."
For fields with data but no clear owner: don't delete. Remove them from screens first and wait a cycle. If nobody screams, retire them next quarter. If someone screams, you just found the owner.
Creating a proper intake process for future requests will prevent you from falling into same situation again. Three questions to ask before approving any new field request:
Does an existing field already cover this? (Check the spreadsheet)
Which projects actually need it? (Scope the context accordingly, never global by default)
Who owns it? (A name, not a team)
That's it. No committee, no forms. Just three questions that kill 80% of duplicate requests at the door. And now they protect a hard limit, not just your sanity.
What's the highest custom field count you've inherited? How close are you to the 700 line? And did you ever find out what "Region_v2_FINAL" was for? Drop your war stories below.
I like it, @Peter Kerrigan
To the Community
1. Be aware of what is an Atlassian field (which will sometimes be indicated by "customfield" and the org's own custom fields. Deleting Atlassian fields can cause unnecessary app integration issues.
Another field/scheme cleanup opps:
1. Establish governance to review requests and make recommendations toward similar, more generically named fields (when possible).
2. When a space archives. Sometimes teams feel strongly about changing fields when the space is active. But, after it archives, the team is typically less concerned.
Hi Apryl @Apryl Harris -
Great points on the technical side. The "don't delete Atlassian system fields" warning is a lifesaver for anyone new to the audit process.
It is interesting how the "archived space" window you mentioned is often the only time organizations are willing to actually clean up their logic. It proves that the friction of changing a process while it is live is often higher than the cost of maintaining a messy system.
I guess if Atlassian makes templates for Description I will be able to persuaded users to get rid of most custom fields. A typical example - description of bug:
System: xxx
Steps to introduce: xxx
Probability: 100%
...
Right now users need 3 or more fields to fill. If we had easy to use template that exists just on issue create screen and is copied to Description then number of fields can be reduced. It can be just like forms in service desk that have nice constructor and basic value sanity checks.
Anyway I of course reuse fields of same type in different projects. And always ask user if he is going to search issues using the field. If the answer is no I recommend him to use description.
The Description field can be contexted in order to set such default information:
Configuring contexts and default values for the Description field
The need for separate fields is based on if the content searched or reported on. You can't build a Chart from content within a Description, but you can from most fields.
Fields are important for the operation and reporting within Jira, but proper governance is the key to ensuring Jira works for the general user base. If the users feel frustrated they will seek other ways to get their job done.
We experienced something very similar... Requested to postpone the limit enforcement since also agile work foresees planning cycles which this extreme limitation was definitely not a part of in the past.
Knowing we would need to invest a lot of time and effort finding all the fields not needed anymore, we started looking manually into the field configurations and keeping all braincells together while looking at a screen which look always the same with just different names – for millions and trillions of configurations.
(Although we didn't experience any performance issues at all)
This is not possible for entire days and only a few people can REALLY do it, since not everyone is involved in every field creation and project work. So we figured, we'd need to use the Site Optimizer. That sounded like a god-sent present but was in fact just not usable.
With
- thousands of fields
- hundreds of configurations
- dozens of schemes
the site optimizer wanted to create a new set of every configuration for EACH SPACE which would, on one hand, optimize the configuration (as intended), but on the other, creating loads of unnecessary individual space configurations which would cause mid-term admin trauma when trying to troubleshoot why certain fields are not available anymore for spaces...
In the end I ended up writing python code, extracting all fields with ids, names, last used, screen usage, field config usage, etc and figured it would be helpful if we simply removed all fields programmatically:
- fields not used on screens (and not needed for any hidden automations)
- field values updated longer ago than 1 year
- cleaning up all historical trash like "customfield_name (migrated x)" from the migration to the cloud
All in all, we were again forced to push other topics away to keep up with restrictions that Atlassian simply throws at us. We did it, but I can tell, users and admins were not happy with it. Many things could've been done better in terms of preparation and advisory from Atlassian on how to handle things but sadly this was not the case.
I guess that's the mode we need to get used to.
For step 3 be aware that this won't work for fields with a default value.
Then it is tempting to try and use the CHANGED operator, but that only works for a small handful of default fields.
Thanks for the share.
But there is one thing that I did not quite understand in step 3:
When there are projects, that share the same configuration, that includes the fieldscheme and fields. And said projects actually use these fields as intended - for example let's say "Customer Name". Will the field be counted as 1 field overall or is there something that actually counts it as multiple fields?
Why I am asking this, is because we automatically create customer projects and they are using the same configuration. No distinction (because none needed and we like to do changes centralized).
I am with you on creating dedicated field schemes. I am doing that for non-standardized projects - but they are quite few. Some 95% are standardized. There are 3 or 4 standards used over ~800 projects / spaces. While the bespoke projects use a good part of the fields.
We avoided context at all but and we do not have duplicate fields and I only inherited a few contextualized fields (2 or 3 fields, nothing major). In total we got ~600 fields, some 10 or so pending for deletion.
So to the point: Since I did not really get how the budget is calculated, could you please explain it with the example I've given? I'd really appreciate it.
---
We currently have >3k custom fields in our instance, including those from team-managed projects. One consequence was that we stopped allowing team-managed spaces.
Another was that we put higher scrutiny on new custom field requests, following some principles:
Recommended Learning For You
Level up your skills with Atlassian learning
Learning Path
Improve user experience across Jira with global settings
Learn how to set up and configure a Jira site, manage Jira permissions, and configure Jira apps and integrations.
Learning Path
Streamline projects across Jira with shared configurations
Build Jira work items with reusable configurations called schemes, and reduce administrative work with automation.
Learning Path
Become an effective Jira software project admin
Set up software projects and configure tools and agile boards to meet your team's needs.