Parakeet environment fails to import pyarrow 26 because NeMo resolves NumPy 1.26

Open Beginner friendly
#497 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
73/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
numpy, python

Research direction

Start with internal/transcription/adapters/py/nvidia/pyproject.toml and inspect how this environment's dependencies are resolved and installed. Reproduce the fresh environment's import failure, then check the dependency constraint and lockfile workflow. Done means a fresh Parakeet environment imports NeMo and runs jobs successfully.

Written by the indexing model from the issue text.

Description

Summary

A fresh NeMo environment resolves pyarrow 26.0.0 together with NumPy 1.26.4. pyarrow 26 requires NumPy 2 at import time, so every Parakeet job fails as soon as NeMo imports datasets.

Environment

  • Scriberr built from main at a353078 with Dockerfile.cuda.12.9
  • Docker 29.7.2 on x86_64 (Linux), NVIDIA RTX PRO 6000 Blackwell, driver 595.91.07
  • Fresh named volumes for /app/data and /app/whisperx-env
  • Environment resolved on 2026-10-28

Actual behavior

  File ".../site-packages/nemo/collections/asr/data/huggingface/hf_audio_to_text.py", line 17, in <module>
    import datasets as hf_datasets
  File ".../site-packages/datasets/arrow_dataset.py", line 59, in <module>
    import pyarrow as pa
  File "pyarrow/lib.pyx", line 42, in init pyarrow.lib
ImportError: pyarrow requires NumPy 2.0 or newer, found 1.26.4

pyarrow comes in through nemo-toolkit[asr] (NeMo v2.5.3) and datasets 5.0.1. The environment's pyproject.toml does not constrain it, and pyarrow does not declare the NumPy requirement in its metadata, so the resolver cannot detect the conflict.

Expected behavior

Parakeet jobs run on a freshly built environment.

Workaround

Constraining pyarrow and relocking fixes the import.

dependencies = [
    "nemo-toolkit[asr]",
    "pyarrow<26",
    ...
]

Suggestion

Ship a uv.lock for each engine environment and sync with --frozen. The environments are resolved at first start today, so every new upstream release can break a fresh install, as this issue and #496 show.

Dominant language
Go
Stars
3.1k
Forks
270
PR merge metrics
No merged PRs in 30d

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rishikanthc/Scriberr

All issues in rishikanthc/Scriberr

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.