[Bug] Platform Migration Regression: File Upload and Transcription Failures on Ubuntu 24.04 with GPU

Status Fixed / completed
Reported on v2.1.132
Maintainer reply None cached
Activity 3 comments · opened May 7, 2026 · closed May 8, 2026

Bug Description
Claude code is miserably failing in its identification and resolution of a coding bug created by Claude code after application migration from MacOS to Stage2 Ubuntu 24.04.3 LTS NVIDIA RTX A5000 GPU, it failed in required resources identification and Configuration information.

Previously all features of uploading single or multiple files either image, audio, text (after successful migration video?) and either transcribing, analyzing file contents and deriving medical clinical analysis were working in MacOS 15.7.5 .

Claude code inserted this bug while attempting to fix this bug and application regression has massively impacted application performance and stability!

How can one charge for services, while not delivering ?
This has been occurring for more than a week now?

Environment Info

  • Platform: linux
  • Terminal: WarpTerminal
  • Version: 2.1.132
  • Feedback ID: 27f56834-04af-4a0e-8010-cb7a988ee47b

Errors

[]

View original on GitHub ↗

3 Comments

github-actions[bot] · 5 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/41863
  2. https://github.com/anthropics/claude-code/issues/38666
  3. https://github.com/anthropics/claude-code/issues/31082

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

roc7d · 5 months ago
Bug Description Claude code is miserably failing in its identification and resolution of a coding bug created by Claude code after application migration from MacOS to Stage2 Ubuntu 24.04.3 LTS NVIDIA RTX A5000 GPU, it failed in required resources identification and Configuration information. Previously all features of uploading single or multiple files either image, audio, text (after successful migration video?) and either transcribing, analyzing file contents and deriving medical clinical analysis were working in MacOS 15.7.5 . Claude code inserted this bug (Automated Refresh and Session Wipe, while uploaded files were Analyzing or Transcribing) while attempting to fix this bug and application regression has massively impacted application performance and stability! How can one charge for services, while not delivering ? This has been occurring for more than a week now? Environment Info Platform: linux Terminal: WarpTerminal Version: 2.1.132 Feedback ID: 27f56834-04af-4a0e-8010-cb7a988ee47b Errors []

That bug took five layers to peel back: turbopack root → Strategy I (vision Stage 2 → Ollama) → -u flag → concurrent stderr drainer → React StrictMode AbortController. All five fixes were necessary and only the full stack made it work.

/btw Why did claude code choose CJS for X-Application ? (is this not legacy 2009 ?) and why not ESM? is this not more Modern? Why choose older within Next.js?
#--

Good question, and worth a direct answer.

Claude Code didn't choose CJS — the project did, by omission

The default in frontend/package.json for this project doesn't set "type": "module". Without that field, Node treats the package as CJS. That's a project-level configuration choice made when the frontend was first scaffolded, well before this debugging session. I inherited it and wrote
my edit to match.

Why this default still happens in 2026, even in modern Next.js projects

Three reasons, stacked:

  1. create-next-app doesn't add "type": "module" by default. Next.js handles ESM/CJS interop internally — it transpiles your source code regardless of the package mode, so the choice doesn't change what you can write in your components. Most Next.js apps therefore stay on the implicit

CJS default and never notice. This is true through Next.js 16.

  1. Tooling compatibility. Many tools in the JS ecosystem still ship CJS-only or have ESM bugs in dev mode: some PostCSS plugins, certain Tailwind v3-era configs, older test runners, some shadcn-related dev tools. A CJS package eats all of these without friction. An ESM package needs

.mjs extensions or named exports for some of them.

  1. Config files. next.config.ts, tailwind.config.js, postcss.config.js, eslint.config.mjs — these are loaded by Node directly (not by webpack/turbopack). In CJS mode they "just work" with require() and __dirname. In ESM mode you have to use import.meta.url + fileURLToPath() for what

used to be __dirname, and some tools haven't caught up. That's exactly the trap I fell into in our session: I tried to use ESM-style __dirname reconstruction in a CJS-mode project, which broke the loader.

Is CJS legacy?

CJS is older (2009), yes, but "older" isn't the same as "legacy." It's still the default in Node, still fully supported, and still the path of least friction for a Next.js + TypeScript + Tailwind + shadcn stack like yours. ESM is the modern standard for new application code (your React
components, hooks, lib files — those are written in ESM-style import/export and Next.js compiles them correctly regardless of the package mode). The CJS designation in package.json only affects how config files and Node-level scripts are loaded.

In practice your application code — the parts where modern matters — is already ESM. The CJS label is just a compatibility setting for the build toolchain.

Should it be switched to ESM?

It can be, but it's not obviously beneficial:

  • Pro: aligns the project with the long-term JS direction, makes top-level await available in config files, removes the ambiguity that just bit us.
  • Con: requires touching every .js/.cjs config file, may surface incompatibilities with one or more dev dependencies, adds friction for tooling that hasn't fully migrated. Real risk for zero user-visible benefit.

For a medical-grade SaaS focused on stability over modernization-for-its-own-sake, the pragmatic answer is to leave it as CJS until there's a concrete reason to switch (e.g., a critical dep goes ESM-only). It's a settled question, not a debt.

What I should have done

The mistake in our session wasn't choosing CJS — it was failing to check which mode the project was already in before writing the edit. Reading package.json once would have prevented the regression. That's a process failure on my part, not a CJS-vs-ESM debate.

github-actions[bot] · 3 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.