# Frequently Asked Questions

- [Frequently Asked Questions](#frequently-asked-questions)
  - [Supported Characters](#supported-characters)
  - [Compression? ZIP? How is my artifact stored?](#compression-zip-how-is-my-artifact-stored)
  - [Which versions of the artifacts packages are compatible?](#which-versions-of-the-artifacts-packages-are-compatible)
  - [How long will my artifact be available?](#how-long-will-my-artifact-be-available)

## Supported Characters

When uploading an artifact, the inputted `name` parameter along with the files specified in `files` cannot contain any of the following characters. If they are present in `name` or `files`,  the Artifact will be rejected by the server and the upload will fail. These characters are not allowed due to limitations and restrictions with certain file systems such as NTFS. To maintain platform-agnostic behavior, characters that are not supported by an individual filesystem/platform will not be supported on all filesystems/platforms.

- "
- :
- <
- \>
- |
- \*
- ?

In addition to the aforementioned characters, the inputted `name` also cannot include the following
- \
- /

## Compression? ZIP? How is my artifact stored?

When creating an Artifact, the files are dynamically compressed and streamed into a ZIP archive. Since they are stored in a ZIP, they can be compressed by Zlib in varying levels.

The value can range from 0 to 9:

- 0: No compression
- 1: Best speed
- 6: Default compression (same as GNU Gzip)
- 9: Best compression

Higher levels will result in better compression, but will take longer to complete.
For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.

## Which versions of the artifacts packages are compatible?
[actions/upload-artifact](https://github.com/actions/upload-artifact) and [actions/download-artifact](https://github.com/actions/download-artifact), leverage [GitHub Actions toolkit](https://github.com/actions/toolkit) and are typically used together to upload and download artifacts in your workflows.

| upload-artifact | download-artifact | toolkit |
|---|---|---|
| v4 | v4 | v2 |
| < v3 | < v3 | < v1 |

Use matching versions of `actions/upload-artifact` and `actions/download-artifact` to ensure compatibility.

In your GitHub Actions workflow YAML file, you specify the version of the actions you want to use. For example:

```yaml
  uses: actions/upload-artifact@v4
  # ...
  uses: actions/download-artifact@v4
  # ...
```

**Release Notes:**
Check the release notes for each repository to see if there are any specific notes about compatibility or changes in behavior.

## How long will my artifact be available?
The default retention period is **90 days**. For more information, visit: https://github.com/actions/upload-artifact?tab=readme-ov-file#retention-period 
