An Azure service that stores unstructured data in the cloud as blobs.
Thanks for clarifying how TrueNAS Cloud Sync handles the uploads. That additional information helps narrow down the issue considerably.
Since your backup filenames are unique and Azure returns BlobImmutableDueToPolicy, I agree that filename reuse is unlikely to be the cause.
The important detail is that TrueNAS uses rclone to perform chunked block-blob uploads for larger files, while your destination container has an active container-level time-based retention policy.
1. Why the full backups may fail
The container-level immutability allows new blobs to be created but prevents modification or overwriting of existing protected blobs.
For larger uploads, rclone may use Azure Blob Storage's block-upload operations, including Put Block and Put Block List.
The failure may occur when rclone attempts to finalize the block blob or perform a subsequent operation that Azure considers a modification of immutable content.
However, we should confirm the specific failed REST operation before concluding that Put Block List itself is unsupported for your scenario.
2. Will switching from SYNC to COPY resolve it?
Switching to COPY is worth testing because it avoids the destination-deletion behavior associated with synchronization.
However, COPY doesn't necessarily change the underlying block-upload mechanism used by rclone.
Therefore, it may prevent deletion-related errors but might not resolve BlobImmutableDueToPolicy during large-file uploads.
3. Recommended controlled test
I suggest testing with a separate, non-production container before changing the existing retention policy.
Create a test container with the same container-level immutability configuration.
Upload a small backup file using TrueNAS Cloud Sync COPY.
Upload a larger file that triggers chunked block-blob uploads.
Compare the results and capture the exact Azure Storage error for the failed operation.
If the smaller upload succeeds but the larger upload fails, that would provide useful evidence of a compatibility issue involving the upload sequence.
For further confirmation, Azure Storage diagnostic logs can identify the failed REST operation, response status, and storage error code.
4. Alternative approach for immutable SQL backups
Since your SQL backup files are completed before upload and don't require subsequent modification, you could also evaluate a two-stage workflow:
TrueNAS → Azure Blob staging container → Immutable backup container
The staging container would allow TrueNAS to complete its upload operations without an active immutability restriction.
After successful upload, a separate Azure-supported copy operation could place the completed backup into the immutable destination.
This would need to be tested with your storage account configuration, particularly the copy operation's behavior under container-level immutability.
It would also require validating that the destination backup is complete and readable before deleting the staging copy.
5. About protected append writes
The allowProtectedAppendWritesAll option for certain block-blob append scenarios.
However, this setting doesn't universally permit modifications to immutable block blobs, and it isn't a guaranteed solution for rclone's upload workflow.
I don't recommend enabling it without first confirming that it supports the failed operation.
References:
- Container-level WORM policies for immutable blob data
- Configure container-level immutability policies
- Put Block List - Azure Storage REST API
- Azure Storage monitoring and diagnostic logs
Help make this community better for everyone: If this answer helped or resolved your issue, please accept it or upvote it. Thank you.