Jira Data Center helm chart upgrade fails with "nil pointer evaluating interface {}.bucketName"

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

When trying to upgrade Jira Data Center on Kubernetes, the helm command fails due to a missing parameter.

Environment

Jira Data Center running in Kubernetes

Diagnosis

When running the helm upgrade command, this error is show in the terminal:

1 Error: UPGRADE FAILED: template: jira/templates/statefulset.yaml:136:16: executing "jira/templates/statefulset.yaml" at <include "jira.s3StorageEnvVars" .>: error calling include: template: jira/templates/_helpers.tpl:404:18: executing "jira.s3StorageEnvVars" at <.Values.jira.s3Storage.attachments.bucketName>: nil pointer evaluating interface {}.bucketName

Cause

The error points to a missing parameter - {}.bucketName - which causes other internal variables ("jira.s3StorageEnvVars") to have missing references.

This happens because in Jira DC helm chart 1.21.0 there's a new "attachments" tag that was introduced. This is to implement the feature described in Storing attachments in Amazon S3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 attachments: # -- Bucket name to store attachments. If a bucket name and region (see below) are defined, Jira will automatically # use AWS S3 to store attachments. Only bucket name is required, not the full arn. # If you provide the same bucket name for both avatars and attachments, they will be stored in the same bucket # bucketName: # -- AWS region where the S3 bucket is located. # bucketRegion: # -- Override the default AWS API endpoint with a custom one # endpointOverride:

When using helm upgrade, it will use the latest version of the helm chart by default, and if there are required missing values, the deployment will fail.

Solution

Either:

  • Modify the helm upgrade command to add a version that doesn't have the attachments bucket, such as:

    1 --version 1.20.1
  • Or fetch the new values.yaml from the latest helm chart and carry over the configurations as needed.

    ℹ️Note: it is not required to store attachments in an AWS S3 bucket, but it's the missing related parameters that cause the error.

Updated on April 11, 2025

Still need help?

The Atlassian Community is here for you.