March 20, 2026

Vendors can attach an imported RFP when creating an issuer invite. Vendors now land on the import/home page by default. File upload responses now display file names instead of raw JSON in the vendor review panel and exported documents. Vendor-imported RFPs now appear correctly in the portal. PDF imports restored in production. Credits now refunded on all import errors. Document imports no longer fail due to AI parsing timeouts on complex files. AI parsing now handles complex documents with many sections. Failed import jobs now store token usage metrics. Added structured logging for RFP import parsing.

Updates deployed on March 20, 2026.

New

  • RFP selector on issuer invites. Vendors can now attach an imported RFP when creating an issuer invite. The Invite Issuers page includes an optional RFP selector dropdown, so procurement teams see the RFP when they accept the invite. Only vendor-imported RFPs are eligible, and each RFP can only be attached to one invite.

Improved

  • Vendor portal landing page. Vendors now land on the Home page by default when they visit /portal, which features drag-and-drop RFP import, the Strutter AI workspace banner, and RFP response cards. The previous table view with filters, sorting, and search has moved to /portal/home.

  • Vendor portal response list. Responses are now sorted by status so actionable items appear first and submitted responses move to the bottom. The list shows 10 items by default with a "Show more" option to see the rest. Removed redundant "Start Response" buttons since response cards are directly clickable.

Fixed

  • File upload display in vendor review panel. File upload question responses were showing raw JSON data (URLs and metadata) instead of the file name. The vendor draft review panel now renders file upload responses using the proper display component, showing clean file names.

  • File upload display in DOCX and XLSX exports. Exported documents were including raw JSON objects for file upload answers. DOCX and XLSX exports now show comma-separated file names instead of JSON blobs.

  • OAuth consent screen redirect. The "Authorize Access" page would hang on "Authorizing..." after clicking Approve, even though authorization succeeded. The consent screen now shows a clear "Authorization complete" message so users know they can close the tab and return to their app. Error messages and a retry option also display if something goes wrong.

  • Vendor-imported RFPs not appearing in portal. RFPs imported by vendors were not showing up in their portal list, preventing vendors from viewing or responding to RFPs they imported. The self-import endpoints have been restored so imported RFPs now correctly appear in the vendor's portal.

  • PDF imports failing in production. All PDF file imports were broken in production due to the PDF parser relying on browser APIs not available on the server. The parser has been replaced with a server-compatible alternative, restoring PDF imports.

  • Credits not refunded when a file import fails. When a file import crashed due to an unhandled server error, credits were consumed without being refunded. Credits are now automatically refunded on all import errors, not just validation failures.

  • RFP import now shows a clear error when AI parsing fails instead of appearing stuck in "processing". The finalize endpoint previously returned a generic "Job has not completed yet" message for both in-progress and failed imports, causing the UI to poll indefinitely. It now returns a distinct error code and the actual failure reason when an import has failed.

  • Document imports failing due to AI parsing timeouts. Approximately 40% of imported documents were failing with "This operation was aborted" because the AI parsing step timed out before complex files could finish processing. XLSX files were especially affected due to a tight extraction timeout. Timeouts have been increased and automatic retry with backoff has been added so large and complex documents import reliably.

  • AI parsing fails for complex documents with many sections. Increased the AI output token limit for RFP import parsing so complex documents with many sections and questions can be fully processed without truncation errors.

Under the Hood

  • Added structured logging for RFP import parsing: text extraction stats on upload, AI call duration and output stats in the parser, start/success/failure logging with retry details in the worker, and descriptive error chains stored in the AiJob record on failure.

  • Failed import jobs now store token usage metrics so the admin AI dashboard shows complete data for all jobs, not just successful ones.

March 20, 2026 | Strutter AI