Skip to main content
Set ARIUS_ACCOUNT_KEY via an environment variable rather than passing it as a --accountkey CLI argument. This prevents the key from appearing in your shell history and process listings.
When running Arius in Docker, structured logs are written to the /logs directory inside the container. Mount a host directory there to persist them:
docker run \
  -v /path/to/logs:/logs \
  ...
Review the log files for detailed error messages and stack traces before investigating the issues below.

Common issues

Cause: The blob is stored in the Azure Archive tier, which requires a rehydration process before the data can be read. Rehydration typically takes up to 15 hours.Resolution: Run the restore --download command once to trigger rehydration. Wait approximately 15 hours, then run the same command again to complete the download.
# First run — triggers rehydration
arius restore --download --accountname <name> --accountkey <key> --passphrase <pass> --container <container>

# Second run — after ~15 hours, downloads the file
arius restore --download --accountname <name> --accountkey <key> --passphrase <pass> --container <container>
Use --tier cool or --tier hot during archive if you anticipate frequent restores and want to avoid rehydration delays.
Cause: Arius uses AES256 client-side encryption. If the passphrase supplied to restore does not match the one used during archive, decryption fails and the data is inaccessible.Resolution: Confirm that the passphrase passed via --passphrase exactly matches the one used when the data was archived. There is no recovery mechanism for a lost or incorrect passphrase.
There is no way to recover data if the original passphrase is lost. Store your passphrase securely (e.g., in a password manager).
Cause: If a file’s content has changed but its pointer file still exists on disk, Arius will compute a new SHA256 hash of the binary and compare it to the stored hash. Only if the hash differs will the file be re-uploaded. This is the correct behavior.However, if you have manually replaced a binary file and the old pointer file is still present, ensure you run archive again from the correct LocalRoot so Arius can detect the hash mismatch and upload the new content.
arius archive /data --accountname <name> --accountkey <key> --passphrase <pass> --container <container>
Cause: Pointer files (.pointer.arius) on the local filesystem may be missing, deleted, or out of sync with the remote repository. This can happen after manually moving files, restoring to a new machine, or after a partial archive run.Resolution: Run restore without --download to perform a pointer-only synchronization. This only touches .pointer.arius files — binary files and other content are left untouched.
  • Pointers that exist in the archive but not locally are created.
  • Pointers that exist locally but not in the archive are deleted.
arius restore --accountname <name> --accountkey <key> --passphrase <pass> --container <container>
Cause: The Storage Account name or key is incorrect, missing, or has been rotated.Resolution:
  1. Verify the account name in the Azure Portal under your Storage Account overview.
  2. Retrieve a valid access key from Security + networking > Access keys in the portal.
  3. Ensure the key is passed correctly — either via the ARIUS_ACCOUNT_KEY environment variable or the --accountkey flag.
export ARIUS_ACCOUNT_NAME=mystorageaccount
export ARIUS_ACCOUNT_KEY=base64encodedkeyhere==

arius archive /data --passphrase <pass> --container arius
Using environment variables for credentials avoids exposing them in shell history or process listings.
Cause: The specified Blob Storage container does not exist in your Storage Account, or the container name is misspelled.Resolution:
  1. Check the container name you passed to --container.
  2. Create the container in the Azure Portal or via the Azure CLI before running Arius for the first time:
az storage container create \
  --name arius \
  --account-name mystorageaccount \
  --account-key base64encodedkeyhere==
The default container name used in examples is arius, but you can use any valid Azure Blob container name.
Cause: On the first archive run, or when many files have changed, Arius must hash every file and upload new or changed content. This is expected behaviour for large datasets.Resolution: Arius automatically skips files whose hash already exists in the remote repository (BinaryProperties check). Subsequent runs on unchanged content are much faster because Arius finds the existing hash and skips the upload, only updating pointer files as needed.For the fastest possible performance on large directories, ensure the Azure connection is fast and the storage account is in a nearby region. Arius processes hashing and uploads in parallel (up to processor count for hashing, up to 4 for uploads).
arius archive /data \
  --accountname <name> \
  --accountkey  <key> \
  --passphrase  <pass> \
  --container   arius

Build docs developers (and LLMs) love