Skip to content

[BUG] bjdata (UBJSON backend) prints a NumPy 1.x/2.x ABI notice under NumPy 2.x #1890

Description

@oberstet

Summary

Since the py-ubjsonbjdata migration (#1849), autobahn's optional
"ubjson" serializer is backed by bjdata. bjdata (0.6.6) ships sdist only
and builds its _bjdata C extension against NumPy 1.x via the deprecated
oldest-supported-numpy. Imported under NumPy 2.x (now the default), NumPy
prints a multi-line diagnostic to stderr:

A module that was compiled using NumPy 1.x cannot be run in NumPy 2.4.x ...
  from _bjdata import dump, dumpb, load, loadb
AttributeError: _ARRAY_API not found

import bjdata still succeeds and UBJSON (de)serialization of normal WAMP
payloads works — only bjdata's unused NumPy-NDArray path is affected — but the
notice is alarming and shows up in any app that imports
autobahn.wamp.serializer with bjdata installed (e.g. crossbar version).

Root cause / where the real fix lives

This is a bjdata packaging bug (it should build against numpy>=2.0, which
is dual-compatible, and ship wheels). Filed upstream: NeuroJSON/pybj#7
NeuroJSON/pybj (see also the existing NeuroJSON/pybj#6, which is a different
topic).

What autobahn could do (options, none urgent)

  1. Document the caveat for the serialization/all extras (UBJSON backend
    is CPython-only and currently emits a NumPy-2 notice until bjdata is fixed).
  2. Pin bjdata to the first release that builds against NumPy 2.x, once
    available.
  3. Nothing in code — autobahn cannot fix bjdata's build; this is mainly a
    tracking note so the ecosystem is aware.

Downstream note

crossbar has added a short-term, narrowly-scoped stderr filter for this
specific benign notice in its CLI entry point, to be removed once bjdata ships a
NumPy 2.x build. (crossbar issue: see the crossbar tracker.)

Related: #1849.

Checklist

  • I have searched existing issues to avoid duplicates
  • I have provided a minimal reproducible example
  • I have included version information
  • I have included error messages/logs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions