Delete a file your API client uploaded; 404 covers every file that is not.
Deletes a file **your API client** uploaded through POST /v1/files — its bytes, then its record — and releases the storage it counted against the tenant's quota. Any key of the same client may delete it, so a rotated key can clean up after its predecessor.
Every other id is a 404: an unknown id, another client's upload, another tenant's file, a Console upload, a file a run generated, and a file uploaded before this endpoint existed (those have no client recorded; end-user erasure removes them).
**An attached file may be deleted.** Every run that links it keeps the attachment's metadata in GET /v1/runs/{runId}, but its content route answers 404 — and a run still in flight that reads the file no longer finds it. A failed run whose files were deleted cannot be retried (its retryable is false). Delete once you are done with the run.
A 502 means storage refused the delete: nothing was removed, and retrying is safe.