Back to notes
The Tesseract MemoryTechnical note

Restoring job identity without restoring an old poll count

An n8n table write can replace the current payload. Recovering the original job fields is useful, but recovering the initial counter can stop polling progress from accumulating.

Topics

Identity should survive the write

A Data Table node can return the saved row instead of the payload that entered it. The Velvet Paradox restores concept and job fields after those writes, keeping subsequent status requests and terminal updates attached to the same render request. Those identifiers should stay fixed while status and attempt count change.

The counter belongs to the current pass

Normalize Poll Response reads from Initialize Poll State. Later in the loop, another node increments the counter, writes running state and returns through wait and poll. The next normalization reads the initialization item again, so the incremented value is at risk of being replaced by its starting value.

The two kinds of state need different sources: initialization can supply stable identity, while the current iteration supplies progress. I'd test that distinction with a provider stub that always returns pending, capture every attempt and assert one terminal update when the configured limit is reached.

Keep the stopping point visible

The completion branch rejects a result without image URLs and emits one candidate per image when they exist. Provider failure and polling timeout use separate job updates. Maintenance also finds stale work, so a request's outcome can retain more detail than an empty result.

Those branches are present in the export. The unresolved check is whether the normal loop advances into its terminal path as intended. No provider call or polling execution was performed for this note.

Initial context versus evolving poll state

The normalizer reloads the initialization snapshot inside a loop whose counter should advance.

Direct callResponse / returnBlocked / denied
Stable identity
Polling loop
Durable state

Scroll or drag the background to move. Use the zoom buttons to resize.Arrow keys move between components. Enter selects.

Choose a component to explore

Select a numbered component on the map or use the component menu. Its details and connections will appear here.

No component selected.

All connections (11)
  1. 01 · Initialize poll state02 · Wait intervalStart polling · Direct call
  2. 02 · Wait interval03 · Provider status requestPoll · Direct call
  3. 03 · Provider status request04 · Normalize responseStatus response · Response / return
  4. 01 · Initialize poll state04 · Normalize responseReload initial snapshot · Direct call
  5. 04 · Normalize response06 · Completion and failure gatesNormalized status · Direct call
  6. 06 · Completion and failure gates08 · Terminal job recordCompleted / failed · Direct call
  7. 06 · Completion and failure gates05 · Advance attemptsStill pending · Direct call
  8. 05 · Advance attempts09 · Attempt-limit gateUpdated attempts · Direct call
  9. 09 · Attempt-limit gate08 · Terminal job recordLimit reached · Blocked / denied
  10. 09 · Attempt-limit gate07 · Running job recordContinue polling · Direct call
  11. 07 · Running job record02 · Wait intervalNext iteration · Response / return