Featherstone Bakers13 Automator Purchase Order Automation
  1. Upload
  2. Extract
  3. Review
  4. Write

Automator · Job 08a13f728290

Screenshot 2026-09-20 at 2.39.41 PM.png

Could not extract the order: vision HTTP 401: {"detail":"401 Unauthorized"}

Needs Review

Invoice header

Account, customer, Bakers item #, quantity, unit, and price are required to write into Bakers. Everything else stays hidden until you ask for it.

Line items

Only the Bakers item # is shown or written — the purchaser's own PO item numbers live in their database, not ours.

Description Bakers item # Qty Unit Price Cost Match
transcribed

Writes always post to B13-Test's TEST ACCOUNT 99999, regardless of the matched customer above.

Back to jobs
Debug log

Every extract step, parsed inventory row, write attempt, and the raw vision/Advantage responses stay here.

vision HTTP 401: {"detail":"401 Unauthorized"}

  1. 2026-09-20T14:39:57 · received Screenshot 2026-09-20 at 2.39.41 PM.png
  2. 2026-09-20T14:39:57 · extract.start Screenshot 2026-09-20 at 2.39.41 PM.png (647541 bytes)
  3. 2026-09-20T14:39:58 · image 1 webp frame(s), 55320 bytes (from 647541)
  4. 2026-09-20T14:39:58 · extract vision HTTP 401: {"detail":"401 Unauthorized"}
  5. 2026-09-20T14:39:58 · vision.response { "detail": "401 Unauthorized" }
Traceback (most recent call last):
  File "/home/dragon/ar-write-sandbox/webapp/intake.py", line 941, in extract_order
    with urllib.request.urlopen(req, timeout=180) as resp:
         ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/urllib/request.py", line 187, in urlopen
    return opener.open(url, data, timeout)
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/urllib/request.py", line 493, in open
    response = meth(req, response)
  File "/usr/lib/python3.14/urllib/request.py", line 602, in http_response
    response = self.parent.error(
        'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.14/urllib/request.py", line 531, in error
    return self._call_chain(*args)
           ~~~~~~~~~~~~~~~~^^^^^^^
  File "/usr/lib/python3.14/urllib/request.py", line 464, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.14/urllib/request.py", line 611, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 401: Unauthorized

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/dragon/ar-write-sandbox/webapp/intake.py", line 1100, in process_job
    extracted = extract_order(images, transcribe_fn=transcribe_fn, debug=vision_debug)
  File "/home/dragon/ar-write-sandbox/webapp/intake.py", line 954, in extract_order
    raise RuntimeError(f"vision HTTP {exc.code}: {err_body or exc.reason}") from exc
RuntimeError: vision HTTP 401: {"detail":"401 Unauthorized"}

Vision API response

rndev6--invoicevision1

{
  "detail": "401 Unauthorized"
}