# Wait for an upload's URL to expire before deleting its bytes · dara/icarus

[View on GitCafe](https://git.cafe/dara/icarus/commit/2b1dffb3954f37b1db306a7155f7a8a73d0e04b4)

Repository: [dara/icarus](https://git.cafe/dara/icarus)

Visibility: public

Requested revision: 2b1dffb3954f37b1db306a7155f7a8a73d0e04b4

Requested commit: 2b1dffb3954f37b1db306a7155f7a8a73d0e04b4

Commit: 2b1dffb3954f37b1db306a7155f7a8a73d0e04b4

Tree: 0092196c3f2643f78d970fc9331226fbb11ae8e7

Author: Dara Adedeji

Committer: Dara Adedeji

## Message

```
Wait for an upload's URL to expire before deleting its bytes

An image deleted while its presigned PUT was still in flight lost its row
before the bytes landed, so the object stayed in R2 with nothing left to
reclaim it. Intents now record when their upload URL expires, and the
physical-deletion claim skips an asset until that time plus a 15 minute
grace for a PUT that started just before expiry. The hourly sweep picks
it up afterwards.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

```

## Parents

- [d7d9d580f8ffbebb1cf151b52b8f96888ddabe66](https://git.cafe/dara/icarus/commit/d7d9d580f8ffbebb1cf151b52b8f96888ddabe66?format=markdown)

[Source at this commit](https://git.cafe/dara/icarus/tree/2b1dffb3954f37b1db306a7155f7a8a73d0e04b4?format=markdown)
