Troubleshooting · extraction
Use when
A run ended with
Partly finished or Stopped early, you must know whether a run read every File, or a start is refused with review_not_empty.Looking for something else?
Files whose text arrived wrong (recipe Check that a File’s text arrived intact). A start that waits for approval (problem A change returned pending). Items that repeat an entity the Graph has (problem An extraction found an entity the Graph already has).
Signs
- The CLI prints
Partly finished: N Files weren't fully readand the linenext: penumbra extractions try-again <run-id>. - The CLI prints
Stopped early.and says that the Files were not fully read. penumbra graph extractions "<workspace>" --run <run-id> --jsonhas anincompleteobject. It holdsparts_delivered,parts_totalandfiles_not_fully_read.- A new extraction is refused with
review_not_emptyand the status 409.
Why it happens
A run reads its Files in parts. If the engine cannot finish some parts after its retries, Penumbra delivers the parts that finished and ends the run as partly finished. A stop works the other way. The run delivers what it has found so far and reads no more. In both cases the workspace holds only what was read, so the Graph that you build from it has gaps. A start gets the name of its workspace from the Shape, the first File and the request key. If a workspace with that name already holds items, Penumbra refuses the start before it admits the run.What Penumbra does
By itself:- Delivers the parts that finished when the engine cannot finish the rest, and ends the run as partly finished.
- Lists the Files that were not fully read in the run’s status by File ID, and
marks the ones that were partly read. The CLI text prints only their count;
--jsonlists them. - Charges only for the work that finished.
- Delivers what a stopped run had found and marks the run as stopped early, without naming the Files it did not read.
- Offers Try again for a failed run. It offers it for a partly finished run only while its workspace is open and unchanged. It offers it on the newest run only.
- Does not offer Try again for a stopped run, and refuses it with
retry_not_offered. - Continues a tried-again run from the parts that finished, closes the old workspace and opens a new one under a new name.
- Counts the first read of a workspace as a change when the comparison with the Graph matches or flags an item. Try again is then refused with
retry_review_edited. - Refuses a start with
review_not_emptyand the status 409 when the workspace named for that start already holds items. - Refuses that start before it admits the run, so it holds no credits and charges nothing.
- Does not raise
review_not_emptyon Try again.
- Read how the run ended before you say that the Graph is complete.
- Decide on Try again before you read or edit a partly finished workspace.
- Tell the person which Files were not read, or that Penumbra does not say.
- After a stop, nothing lists the Files that were read.
- The refusal
review_not_emptysays “Start it again with a new idempotency_key”. It does not say that the old key admitted nothing.
Do
- Read how the run ended:
penumbra graph extractions "<workspace>" --run <run-id>. Add--jsonto readincomplete. - If the run is partly finished or failed, decide on Try again now, before you
read or edit the workspace (card rule extraction.13). Tell the person that
it costs credits, and that a key or a connected agent waits for approval
(card rule extraction.12). Run
penumbra extractions try-again <run-id> --request-id <key>and keep the key. - Follow the workspace name and the run id that Try again prints, and not the old ones (card rule extraction.10).
- If Try again is refused with
retry_review_edited,retry_not_offeredorretry_stale, do not edit the workspace further. Submit what it holds (recipe review-and-submit), or close it (card rule workspace.11). Then start a new extraction for the Files that were not read (recipe extract-files). - If the run was stopped, start a new extraction for the rest (card rule extraction.11). Compare the Files in the plan with the Files that the items cite, because the stop does not say which Files were read.
- If a start is refused with
review_not_empty, nothing was admitted or charged. If an earlier start with that key had been admitted, the same key would return that run withreplayedand no refusal. Start again with a new--request-id. - Tell the person which Files were not read, and what you did about them.
Don’t
- Don’t tell the person that the Graph is complete after a run that ended in part.
- Don’t read or edit a partly finished workspace before you decide on Try again.
- Don’t start a new extraction of all the Files to finish a partly finished run. Try again reads the rest and charges only for the rest.
- Don’t use a new key to repeat a start whose reply was lost (recipe
recover-after-a-lost-reply). A new key is right only after a refusal such as
review_not_empty, because that refusal admitted nothing and a key repeats the same start only.
Check
- The run that finished shows
Ready to reviewand noPartly finishedline, or the person has decided to leave the rest unread. - You can name the Files that were read, the Files that were not, and the cost.