Skip to main content

Troubleshoot Storage

First confirm TARUVI_SITE_URL, the app slug, the bucket slug, and the file path, and that file URLs end with a trailing slash.

Upload and object validation (400)​

Message or symptomTypical causeWhat to do
File size exceeds bucket limitFile larger than the bucket's file_size_limit (default 50 MB)Use a smaller file, or raise the bucket limit with PATCH (up to 5 GB)
MIME type not allowedallowed_mime_types rejects derived typeUpload a matching type or widen the list on the bucket
Cannot upload empty fileZero-byte bodyUpload non-empty content
Metadata size exceeds S3 limit of 2KBMetadata JSON too largeShrink or remove metadata keys
Path is requiredNo path or filename on POST /objects/Add a path form field, or upload with PUT /objects/{key}/
Object key is required for raw binary uploadsRaw bytes sent without a path in the URLUse PUT /objects/{key}/ with a Content-Type header

Bucket create or update (400)​

Message or symptomTypical causeWhat to do
App category field is requiredMissing app_category on createSend assets or attachments — see Security and limits
storage_provider is immutablePATCH tried to change providerCreate a new bucket; files can't be copied or moved between providers
Bucket slug already existsDuplicate slug in the same appPick another name (slug is derived from name)
Quota must be ≥ file size limitmax_size_bytes below file_size_limitRaise quota or lower per-file limit
File size limit exceeds platform maximumfile_size_limit above 5 GBSet it to 5 GB or less
Slug unchanged after renameslug is read-onlyUpdate name only; slug does not change via API

Access (403)​

SymptomTypical causeWhat to do
Bucket POST / PATCH / DELETE deniedThe caller isn't an organization owner or admin, or a cloud user with access to the siteUse an API key generated by such a user
Object read, write, delete, copy, move deniedThe bucket's access policy doesn't allow itGrant the action for the caller's role — see Access policies
Edit URL denied on public objectEdit never bypasses authAuthenticate; caller needs update on the bucket
Browse denied anonymouslyBrowse requires auth even for public bucketsAuthenticate, or use filtered GET /objects/ for public reads

Default policies: assets is read-only for typical roles; attachments allows read/create/update; delete is not in either default.

Not found (404)​

SymptomTypical causeWhat to do
Object not found in storageThe file's record exists but its content is missing from the providerUpload the file again; if it keeps happening, contact support
Object not foundWrong path, or the URL has no trailing slashPaths are case-sensitive and include folders — check with browse or list using prefix

Copy and move​

SymptomTypical causeWhat to do
Cross-provider move is not supportedSource and destination providers differDownload the file, upload it to the other bucket, then delete the original
Object already exists at destination (409)Path takenDelete, rename, or pick another path
Source object not foundBad source_path or app scopeConfirm path under the URL's app_slug

SharePoint provider codes​

Provider codeMeaningWhat to do
sharepoint_site_not_readySharePoint isn't set up for this site yetWait a few minutes and retry; if it persists, contact support
non_office_edit_rejectedNon-Office MIME on edit URLDownload, edit locally, re-upload
path_too_longURL exceeds SharePoint limitShorten path segments
guest_invite_rejectedThe email belongs to your own Microsoft organization, so it can't be invited as a guestUse an external email address, or add the user to your Microsoft organization
guest_invitation_propagation_timeoutSharePoint took longer than 8 seconds to grant accessRetry the request
graph_api_errorMicrosoft Graph failureUse graph_code, retry_after, and request_id from the error

Batch operations​

SymptomTypical causeWhat to do
207 Multi-Status on batch delete/uploadPartial failureFix each failed[] entry; retries are per path, not whole batch
Total file size exceeds 800MBBatch over capSplit into smaller batches
Paths must be uniqueDuplicate paths in one batchDeduplicate paths

Batch limits: up to 100 items per request. Upload rejects the whole request when total size exceeds 800 MB or paths duplicate.

Quotas and usage​

Bucket max_size_bytes and max_objects are checked periodically, not on every upload, so going over a quota doesn't block uploads. GET .../usage/ shows usage as of the last recalculation.