# What changed in onnxruntime

> 85 changes in onnxruntime 1 from its official release notes, upgrade guides and advisories: 5 breaking, 2 deprecations, 3 security, 40 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/pypi/onnxruntime/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## onnxruntime 1

### Breaking changes

- The corresponding experimental lookup entries were removed as EPContext callback registration moved to stable APIs. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Out-of-range indices now produce zero output slices on CPU, CUDA, and WebGPU for integer and floating-point quantized formats, differing deliberately from ONNX Gather error semantics. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- CPU FP16 Gemm and MatMul execution is gated on hardware acceleration; CPU-assigned FP16 nodes without a matching kernel now fall back to FP32. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- CUDA fpA-intB builds now default to a compact kernel set for FP16 activations, INT4/INT8 weights, scale-only quantization, and block_size=32. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- ImageScaler now requires bias to match the channel count. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)

### Security

- Canonicalized external-data locations to harden model loading. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added an allowlist of safe LoRA adapter parameter data types. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Limited nested model-graph depth to harden model loading. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)

### Deprecations

- ACL EP is deprecated and will be removed in a future release; source builds using --use_acl now receive a deprecation warning. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Source builds using this option now receive a deprecation warning. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)

### New APIs and options

- Added as a weightless hyper-connection operator with CPU, CUDA, and WebGPU implementations. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Compilation can write external initializers and EP context data to buffers, enabling in-memory workflows for models larger than 2 GB. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- CoreML is exposed through OrtEpFactory, device enumeration, SessionOptionsAppendExecutionProvider_V2, and EP selection policies; NPU and GPU selection have stated OS minimums. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Extended for Qwen4-Exp. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added in Node.js/React Native, Objective-C/Swift, and Rust; JavaScript support is read-only and unsupported on Web/WASM. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added callback support in C#, Python, and Java. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- The activation attribute supports SiLU, its Swish alias, and Sigmoid gating across CPU, CUDA, and WebGPU; SiLU remains the default. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- WebNN EP added support for GroupNorm. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- WebNN EP added support for GroupNormalization. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added as a weightless hyper-connection operator with CPU, CUDA, and WebGPU implementations. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added as a weightless hyper-connection operator with CPU, CUDA, and WebGPU implementations. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added to the standard, non-proxy ONNX Runtime Web run path. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Opt-in CPU MatMulNBits FP32 throughput mode for eligible x86/x64 nodes; it is session-wide, disabled by default, and trades single-request latency for batched throughput. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Disables telemetry. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- This opt-in source-build option skips platform accelerator probing and reports only the CPU device. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Set to ON to select Windows TraceLogging telemetry. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added as an override for the accelerated block-wise INT4/INT8 QMoE CPU expert path. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Plugin execution providers can be statically linked; a static WebGPU plugin build configuration was added. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- CoreML can participate in device-based EP selection, including Apple Neural Engine selection through PREFER_NPU. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added an accuracy_level attribute; INT4 uses FP32 activations by default, while accuracy_level=4 opts into INT8 activation computation. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added as a weightless hyper-connection operator with CPU, CUDA, and WebGPU implementations. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Set to 1 to fail initialization on workspace declaration overruns or nonzero orphaned reservations; strict verification is unsupported for ORT-format model loads. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- WebNN EP added support for SkipGroupNorm. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added for packed DeepSeek Engram batching with request-local history. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added the DeepSeek Engram contrib operator. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added a compact operator and BFloat16 support for CUDA GatedDeltaNet. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added Go bindings for the ONNX Runtime C API. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Extended memory importing with host-pointer support. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added access to preallocated outputs through this API. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added the DeepSeek Engram contrib operator. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Source builds can disable FP4 QMoE kernels with -Donnxruntime_USE_FP4_QMOE=OFF. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Set this source-build option to retain the full CUDA fpA-intB kernel set instead of the compact default set. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Setting this environment variable to 1 opts into an FP8 DeepGEMM MoE decode path for supported fixed-shape QMoE workloads on Hopper GPUs; the path is disabled on Windows. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Extended paged XQA with speculative decoding, additional head-group and head-size support, FP16 caches for head size 256, and native block tables for 128-token pages. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added INT4 paged KV caches with per-channel scales. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added SkipLayerNormalization support to the WebNN execution provider. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added an opt-in split-K GEMV path for small-N FP16 MatMul shapes. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Validated node references and bounded subtree comparison. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added the operator for continuous batching and compact variable-length causal-convolution state updates. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Exposed safe graph-capture I/O in Python. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)

### Performance

- Eligible CPU weight prepacking during session initialization is parallelized using the intra-op thread pool; cross-session shared caching retains its serialized path. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added an opt-in CPU FP32 throughput path for eligible x86/x64 FP32-input, 4-bit, block-size-32, accuracy-level-4 nodes. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Added AVX2 LayerNorm/RMSNorm kernels. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added fused CPU LinearAttention kernels for AVX-512, Arm64 NEON, and SVE. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Improved PagedAttention and added metadata, GPT-OSS support, and INT8 KV-cache block quantization. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)

### Behavior and default changes

- Supported native builds now default to 1DS telemetry; Windows TraceLogging remains selectable and telemetry can be disabled. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Named read/write callbacks for application-managed storage are stable; EP support negotiation prevents registered callbacks from silently falling back to filesystem I/O. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Extended to FP8/FP4 data, full-axis blocks, and scale broadcasting; CPU UINT8 dequantization also improved. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Extended for Qwen4-Exp; packed hashing also supports head offsets, EOS resets, and segment boundaries. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Model-package consumers should use this stable API lookup and the stable OrtModelPackageApi table instead of experimental lookup entries. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- The model-package C and C++ APIs are stable for loading packages, selecting compatible model variants, and creating sessions. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- WebNN supports NHWC Resize by inferring resample2d axes. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Registered BFloat16 LayerNorm/RMSNorm kernels on the CPU execution provider. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- FP4 QMoE kernels are enabled by default in CUDA builds; source builds can opt out with the CMake option. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Added INT64 Gather support in the WebGPU execution provider. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- WebGPU now supports forwarding onnxruntime_perf_test -i options. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Extended convolution fusion with eight additional activations, fused activation handling in the im2col path, and uniform-based activation parameters for Conv/MatMul. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)

### Fixes and other changes

- Remains selectable for Windows TraceLogging telemetry. (1.31.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.31.0)
- Misuse now reports errors instead of terminating the process. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Rejected non-finite CPU RoiAlign coordinates. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Enabled WebGPU LayerNorm fusion to fix FP16 inference correctness. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Python asynchronous-run resources are retained and C# arguments are pinned until completion. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Made Rust string-tensor output extraction safe. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Validated Rust tensor element types. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Plugin EP packaging now supports Linux AArch64. (1.30.0) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.30.0)
- Shape inference was hardened for this applicable contrib operator. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Avoids out-of-bounds reads in ConvTransposeWithDynamicPads. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Shape inference no longer performs an out-of-bounds read when beta is a scalar. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Shape inference was hardened for this applicable contrib operator. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Avoids an out-of-bounds read when a Loop body input is also an initializer. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Reusing a packed sub-byte buffer for a full-byte tensor no longer causes a heap buffer overflow. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Single-tensor data transfers now preserve streams during plugin EP execution. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Avoids an out-of-bounds read when a Scan body input is also an initializer. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Shape inference was hardened for this applicable contrib operator. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
- Graph validation now rejects inputs to operator schemas that declare zero inputs. (1.28.3) — [release notes](https://github.com/microsoft/onnxruntime/releases/tag/v1.28.3)
