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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions