An Azure service that stores unstructured data in the cloud as blobs.
This behavior is consistent with TrueNAS attempting to replace, rename or delete a blob that is already protected by the time-based immutability policy.
Once the policy applies, Azure Blob Storage must reject operations that modify or delete protected content. A full backup commonly reuses the same destination filename, while incremental backups often create new files; that difference would explain why one workflow succeeds and the other fails.
Recommended approach:
- Configure the SQL backup process to produce a unique, timestamped name for every full backup.
- Ensure TrueNAS uploads only completed backup files rather than files still being written.
- Configure Cloud Sync so it creates a new blob and does not overwrite, rename or delete the previous destination blob.
- Check the TrueNAS log for the exact Azure response, especially HTTP 409 or errors such as
BlobImmutableDueToPolicy. - Test both backup and restore before locking the policy.
If the workflow must reuse a logical filename, evaluate version-level immutability with blob versioning. A new version may be created while older protected versions remain immutable, but this works only if the operations issued by TrueNAS are supported under the selected policy. It will not make an overwrite/delete-style synchronization operation automatically compatible.
Another design is to upload to a staging container and copy each completed file—under a unique name—to the immutable destination. Note that the staging period is not WORM-protected, so this is appropriate only if that gap meets the recovery and compliance requirements.
Also remember that a locked retention policy cannot be shortened or removed. Test with an unlocked policy and representative full-backup files first.
References: