Pricing import landed nothing
Runbook for a pricing-app import that reports success but adds no products — almost always a wrong-host path issue — plus the stuck-pending case.
Symptom: A pricing-app import returns success (or completes without error),
but no products show up in the catalog. Or: the import status sits at pending
and never moves.
Likely cause
For “success but nothing landed”: a path issue, ~95% of the time. The
import reads files from the pricing-app server (nvrbackup, 10.10.0.14) —
not the Leif host. If the file was written to the Leif workspace, or to /tmp
on the wrong host, the importer finds nothing to import and reports success over
an empty set. See Pricing App File Import
for the full path table.
For “stuck pending”: the import worker died.
Diagnose
1. Is the file actually where the importer looks? Check on nvrbackup
(remote_*, not local_*):
remote_execute_command(command="ls -la /tmp/<filename>.csv")
If it’s not there, it was written to the wrong host. That’s the bug.
2. Did you use the generic parser? Without use_generic_parser=True, the
import looks for a vendor-specific parser and can silently no-op on an arbitrary
CSV layout. Confirm the call that was made.
3. For stuck-pending, is the worker alive?
remote_execute_command(command="sudo systemctl status pricing-app-worker --no-pager")
Fix
-
Wrong host: rewrite the CSV onto
nvrbackupand re-run. Useremote_write_fileor aremote_execute_commandheredoc with quoted<<'EOF'so$and backticks in product descriptions survive:remote_execute_command(command="cat > /tmp/<vendor>.csv <<'EOF'\n<rows>\nEOF") pricing_app_create_file_import(vendor_name="<Vendor>", file_path="/tmp/<vendor>.csv", use_generic_parser=True)Or sidestep the path problem entirely by having the parse tool generate the file server-side:
pricing_app_parse_price_list(..., output_path="/tmp/<vendor>.csv"). -
Stuck pending / dead worker: restart it, then re-run the import.
remote_execute_command(command="sudo systemctl restart pricing-app-worker")
Verify
Monitor the re-run to completion and confirm a non-zero product count:
pricing_app_monitor_import(import_id="<id>")
pricing_app_get_import_status(import_id="<id>")
A healthy import reports products added; if it again says success with zero products, the file still isn’t where the importer is reading from.
Related pages
- Pricing App File Import — the canonical workflow and the full path table
- pricing-app —
pricing_app_*signatures - Hosts —
nvrbackupaccess and paths - Shell & file tools —
local_*vsremote_*, the root of the path bug