In Inngest, never trust the event payload for values that could have been set after the trigger. Re-fetch them inside a step instead. The payload is frozen at trigger time by design, so retries cannot heal stale data.

Context: From a DEV community post on Inngest retries. The event payload is snapshotted at trigger time and is immutable across runs: if a value was null when the event was sent, every retry sees null forever, no matter what the database says now. The post's example: an upload job triggers processing, but the storage key is written to the DB after the event was sent, so the function fails on every retry reading the stale payload.