I checked the backend logs and found the issue: our code expected the older pdf-parse API, but production had the newer package behavior. After that, Groq’s strict JSON mode also failed on skill extraction, so I added a fallback path.
Lesson for today: some “user errors” are really product assumptions breaking quietly. This is why I like building in public. Every real user interaction shows where the product needs to become more resilient.