CircleCI Server AWS S3 Storage Lifecycle Guide

Last updated
Tags Server v2.x Server Admin

This guide is intended to help system administrators of CircleCI server installations on AWS better understand how S3 storage is used. This can help to cut compute resource costs and avoid issues for service users when removing resources.

In CircleCI server, S3 Lifecycle policies are not configured automatically. The figures provided in this guide are examples to help you create a lifecycle policy for your installation. For more information on the steps required to add policy rules, see the AWS Lifecycle Policy Guide.

Example Lifecycle Policy Configuration for S3 Buckets

Scroll table to the right to view all content.
Prefix Tag Suggested Number of Days Description of files Side effects of deletion




General artifacts (deliverables from store_artifacts and store_test_results)

Artifacts will disappear from the list of artifacts in job results. URLs will return 404.


"circleci.object_type" === "project.cache"


Dependency caches

The first build after deletion will be slow due to cache miss.


"circleci.object_type" === "workflow.workspace"



If a job depending on workspaces is rerun (e.g. SSH rerun), attach_workspace will restore no files, and subsequent steps will fail.




Task config





Outputs from each step

Outputs will not be shown any longer. Loading indicator will remain even after opening a pull-down for each step.




Legacy cache

This folder is not actively used. If a job depends on these files, the first build after deletion will be slow due to cache miss.

Additional Locations Not Listed Above


This is where audit logs are saved. Deleting this folder and files under this fodler has no impact on future operation of CircleCI, but deleted logs will be definitely lost and cannot be recovered.


This is where signing keys for macOS/iOS apps are stored. This folder is no longer used actively.


This is where statistic data collected with store_test_results resides. The data is used for future test splitting with circleci tests split --split-by=timings. Deleting test results will cause CIRCLE BUG errors in future jobs using parallelism.

Help make this document better

This guide, as well as the rest of our docs, are open-source and available on GitHub. We welcome your contributions.