X_STORAGE_NOT_PENDING
Means
the key is not a pending upload
Typical cause
promoteAttachment was handed a key outside the org pending/ prefix — most often an already-attached key a client sent back. It checked only that the key was inside the org, so another row file was copied onto this row and the original deleted from the victim
Fix
promote the key grantUpload returned with no target — an attached key already belongs to a row, so promote the pending upload the client just sent: promoteAttachment({ disk, key: pendingKey(orgId, name), orgId, target })