Fix Jira - You have exceeded the Free plan's 2 GB storage limit.

In this article we can see how to solve Jira warning message:

You have exceeded the Free plan's 2 GB storage limit. Upgrade to Standard for 250 GB.

Jira offers a free plan that comes with a 2 GB storage limit. However, as your projects grow, you might encounter the surprising message: "You have exceeded the Free plan's 2 GB storage limit." This issue can be annoying and impact your workflow and productivity. Fortunately, there are steps you can take to address this problem and continue using Jira seamlessly.

This article we will try answer on following question:

  • Is there a way to track capacity in Jira?
  • How much storage does Jira give you?
  • How do I check Jira size?
  • How do I clean up storage in Jira?

You can still use your Jira/Atlasian/Confluence account if you notice this message. It's better to resolve the storage issue in order to avoid sudden future surprise.

Check storage usage in Jira, Confluence

To analyze Jira storage and remove the warning you can follow next step:

  • Open Jira
  • Top left - menu button
  • Administration
  • Select product
    • Jira Administration
  • Click on 3 dots on the right
  • Manage Product
  • Select Site on the right
  • Storage

More information can be found here:

acceptable use policy

Check Jira storage - images

Below you can find the steps as images:

JQL search for issues that have attachments

You can use JQL to search Jira issues which have attachments or not. Below you can find examples of such query:

attachments IS NOT EMPTY AND project = "DS" ORDER BY created DESC

The syntax is: attachments IS NOT EMPTY

Create Jira token

To create token you can read here: Manage API tokens for your Atlassian account

Python list Jira attachments

If you prefer to use Python code to extract all tickets with their attachment size we can:

Python requests

import requests
from requests.auth import HTTPBasicAuth
import json

url = "https://xxx.atlassian.net/rest/api/3/attachment/10533"

auth = HTTPBasicAuth("xxx@xxx.xxx", "xxx")

headers = {
  "Accept": "application/json"
}

response = requests.request(
   "GET",
   url,
   headers=headers,
   auth=auth
)

print(json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ")))

sample output:

...
  "created": "2023-10-31T12:55:22.863+0000",
	"filename": "image-20231031.png",
	"id": 10533,
	"mimeType": "image/png",
	"properties": {},
	"self": "https://xxx.atlassian.net/rest/api/3/attachment/10533",
	"size": 88307,
	"thumbnail": "https://xxx.atlassian.net/rest/api/3/attachment/thumbnail/10533"
}

Python list all attachments from Jira tickets

We can use pandas and jira libraries to extract all tickets which have attachments. We will extract the following information:

  • ticket key
  • attachment size
  • filename

data will be extracted as pandas DataFrame:

import pandas as pd
from jira import JIRA

jira = JIRA({"server": "https://xxx.atlassian.net/"}, basic_auth=("xxx", "xxx"))
issues = jira.search_issues('attachments IS NOT EMPTY AND project = "DS" ORDER BY created DESC', maxResults=None)

data = []
for issue in issues:
	issue_num = issue.key
	print(issue_num)
	issue = jira.issue(issue_num, expand="attachments")
	for attachment in issue.fields.attachment:
    	filename = attachment.filename
    	size = attachment.size
    	print(filename, size)
    	data.append({'key': issue_num, 'filename': filename, 'size': size})

df = pd.DataFrame(data)
df.sort_values(by='size')

You can check the result below:

Curl list attachment info

To use cURL request to extract information about Jira attachments try the following syntax:

curl --request GET \
  --url 'https://your-domain.atlassian.net/rest/api/3/issue/DS-270' \
  --user 'email@example.com:<api_token>' \
  --header 'Accept: application/json'

Below you can find how to extract attachment info below

List attachments

You can list all attachment for a given ticket by:

curl --request GET \
  --url 'https://your-domain.atlassian.net/rest/api/3/issue/DS-270?fields=attachment' \
  --user 'email@example.com:<api_token>' \
  --header 'Accept: application/json'

Get Attachment Info

To extract Jira attachment info by id use the following syntax:

curl --request GET \
  --url 'https://your-domain.atlassian.net/rest/api/3/attachment/content/{id}' \
  --user 'email@example.com:<api_token>' \
  --header 'Accept: application/json'

JXL - Jira app to view attachments

As an alternative you can try an app which is free for up to 10 users to find all attachments in Jira Board. The app is advertised as:

JXL - Table Sheets Hierarchy Structure Sum-up Issue Editor

Additional tips to save storage in Jira

If the solutions above are not enough to solve your Jira storage issues then you can try:

  • Identify and Manage Large Attachments: One common reason for exceeding the storage limit is the accumulation of large file attachments. Start by identifying and managing these attachments. Review your issues and consider removing unnecessary or obsolete files. Additionally, encourage your team to adopt best practices for file management, such as linking to external storage solutions for larger files.

  • Archive Old Projects or Issues: If your Jira instance contains old projects or issues that are no longer relevant, consider archiving them. Archiving helps you retain historical data without affecting your active projects. Archiving can be done manually or through third-party apps designed for this purpose.

  • Implement Issue Deletion Policies: Regularly review and delete issues that are no longer needed. Establish clear policies for issue deletion to ensure that your Jira instance remains clutter-free. Make sure to communicate these policies with your team and provide guidelines on when it's appropriate to delete issues.

  • Optimize Custom Fields and Screens: Evaluate your custom fields and screens to ensure they are configured efficiently. Unused or redundant custom fields can contribute to unnecessary data storage. Consider streamlining your field configurations and removing any fields that are not actively contributing to your workflow.

  • Upgrade to a Paid Plan: If the above steps do not provide a sufficient resolution and your team requires more storage space, it might be time to consider upgrading to a paid plan. Jira offers various subscription plans with increased storage capacity and additional features. Evaluate your team's needs and budget to choose the most suitable plan.

  • Consider Data Center or Cloud Solutions: For organizations with growing needs and larger teams, migrating to Jira Data Center or Jira Cloud may be a viable solution. These solutions offer scalability and enhanced performance, along with more extensive storage options. Evaluate the benefits and features of each to determine the best fit for your organization.

You can also consider self hosted Jira.

Summary

Facing the "You have exceeded the Free plan's 2 GB storage limit" issue in Jira can be a temporary setback. By implementing the suggested strategies, you can efficiently manage your storage and continue leveraging Jira for effective project management.

Whether it's optimizing existing configurations, archiving/deleting old data, or considering an upgrade, taking proactive steps will help ensure a smoother experience with Jira for you and your team.

Resources