N/M diagnostic code explorer
Search stable parser, type, semantic, runtime, assertion, workspace, calibration, and compiler diagnostic codes with actionable fixes.
183 diagnostics
Missing module declaration
The file must start with a module declaration such as module bell_state;
Add a module name before fn main().
Missing fn main
The playground executes a single fn main() entry point.
Add fn main() { ... } around executable statements.
Invalid qubit reference
A gate or measurement points to a qreg index that was not allocated.
Keep indexes inside the declared qreg size, for example q[0] and q[1] for QReg<2>.
QReg size mismatch
The type size and allocation size disagree.
Use matching syntax such as let q: QReg<2> = qreg[2];
Invalid rotation angle
Ry/Rz/CRy/CRz/CP received an angle expression that could not be evaluated.
Use a number, PI, a declared constant, or arithmetic such as Ry(q[0], PI / 2);
Duplicate qubit operand
A multi-qubit gate uses the same physical qubit more than once.
Use distinct qubits for every operand, for example CNOT(q[0], q[1]) instead of CNOT(q[0], q[0]).
Gate after measurement
A gate touches a qubit after direct measurement collapsed it.
Use reset before more quantum gates, move the measurement later, or add @semantics("strict"); if this should block execution.
Unused qubit
A qreg allocation contains a qubit that no gate, measurement, expectation, reset, or encode step uses.
Remove the spare qubit or include it in the intended circuit.
Assertion state width mismatch
An assert probability state has a different bit width than the register.
Match the register width, for example assert probability(|00>) for QReg<2>.
Unknown classical bit
An if conditional guards on a bit that was never produced by a measurement or Bit expression.
Measure or derive a Bit first: let parity: Bit = a xor b; if (parity == 1) { ... }
Invalid Bit expression
A classical Bit assignment could not be parsed.
Use measured bits with not/and/xor/or, for example let parity: Bit = a xor b.
Duplicate Bit binding
A measurement or classical expression reused an existing Bit name.
Use a fresh Bit name for every measurement and derived Bit.
Unknown Bit expression input
A classical Bit expression referenced a bit that has not been produced yet.
Only reference measured or earlier derived bits.
Invalid syndrome measurement
A syndrome statement is not a clean Pauli string.
Use a form such as let s: Bit = syndrome Z(q[0]) Z(q[1]);
Duplicate syndrome qubit
A syndrome Pauli string referenced the same qubit more than once.
Use each qubit at most once in a syndrome measurement.
Unknown adjoint circuit
An adjoint or inverse call references a circuit template that was not defined.
Define the circuit before calling adjoint qft(q); or inverse qft(q);
Non-unitary adjoint body
A circuit used with adjoint contains a non-unitary statement such as measurement, reset, assert, or return.
Keep adjoint circuit templates unitary and move non-unitary operations outside.
Adjoint argument mismatch
A circuit call or adjoint call received the wrong number of angle arguments.
Pass the register followed by exactly the circuit's declared Angle arguments.
Invalid controlled block
A controlled block does not use the supported single-control syntax.
Use controlled q[0] { X(q[1]); } with one control qubit.
Unsupported controlled operation
A controlled block contains an operation that cannot be mapped to a supported controlled gate.
Use X, Y, Z, H, Ry, or Rz inside the controlled block.
Controlled target is control
A controlled block tries to use the control qubit as a target.
Use a different target qubit in the controlled block body.
Nested controlled block
Nested controlled blocks are not supported in the first playground implementation.
Keep one controlled block level or use explicit controlled gates.
Unterminated observable block
A Hamiltonian observable block was opened but not closed with };.
Close the block after the final term, for example observable H = { Z(q[0]), };
Empty observable block
A Hamiltonian observable block did not contain any Pauli or identity terms.
Add at least one term such as -1.0 * I or 0.5 * Z(q[0]).
Unknown std import
A use std.* statement referenced a standard library entry that does not exist.
Use a registered import such as std.bell, algorithms.grover2, qec.repetition3, chemistry.h2_minimal, or optimization.maxcut2.
Invalid metric expression
A metric statement was not a supported probability or expectation observation.
Use metric bell = probability(|00>); or metric energy = expect H;.
Unterminated observe block
An observe report block was opened but not closed.
Close the block with } after the final metric, expectation, or assertion.
Invalid observe syntax
An observe statement did not use the named block form.
Use observe report_name { metric p00 = probability(|00>); }.
Invalid test block
A test block did not use the named block form or was not closed.
Use test "bell behavior" { assert probability(|00>) > 0.45; }.
Invalid property block
A property/forall block did not use the supported single-range form or contains unsupported declarations.
Use property "bounded" { forall theta in 0 .. PI step PI / 2 { assert expectation Z(q[0]) <= 1; } }.
Invalid snapshot block
A snapshot block did not use the named block form or was not closed.
Use snapshot "bell golden" { H(q[0]); assert probability(|0>) > 0.4; }.
Invalid show statement
A show statement used an unsupported subject.
Use show state; to print the current state vector in Dirac notation.
Invalid estimate annotation
An @estimate annotation could not be parsed.
Use @estimate(code: "surface", distance: 7, target_error: 1e-3); near the top of the program.
Invalid language annotation
An @dil annotation requested an unsupported language or malformed syntax.
Use @dil("tr"); for Turkish keyword aliases or @dil("en"); for canonical N/M.
Invalid explain annotation
An @explain annotation could not be parsed.
Use @explain("Describe this step."); before the statement you want to document.
Invalid goal annotation
A @goal annotation could not be parsed.
Use @goal("Describe the lab objective."); near the top of the program.
Invalid outcome annotation
An @outcome annotation could not be parsed.
Use @outcome("Explain why H creates a balanced state."); near the top of the program.
Invalid rubric annotation
An @rubric annotation could not be parsed.
Use @rubric("Explain the probability distribution.", weight: 0.5); near the top of the program.
Invalid misconception annotation
An @misconception annotation could not be parsed.
Use @misconception("H is not a random classical coin flip."); near the top of the program.
Invalid quiz annotation
An @quiz annotation could not be parsed.
Use @quiz("What are the final probabilities?", answer: "50% for |0> and 50% for |1>."); near the top of the program.
Invalid lab annotation
An @lab annotation could not be parsed.
Use @lab("bell-basics", minutes: 10); near the top of the program.
Invalid challenge annotation
An @challenge annotation could not be parsed.
Use @challenge("bell-from-scratch", difficulty: "beginner"); near the top of the program.
Invalid dataset annotation
An @dataset annotation could not be parsed.
Use @dataset("bell-balanced", split: "train"); near the top of the program.
Invalid checkpoint annotation
An @checkpoint annotation could not be parsed.
Use @checkpoint("Predict before running.", kind: "predict"); near the top of the program.
Invalid hint annotation
A @hint annotation could not be parsed.
Use @hint("Try changing the rotation angle."); near the top of the program.
Invalid concept annotation
A @concept annotation could not be parsed.
Use @concept("superposition"); near the top of the program.
Invalid level annotation
A @level annotation could not be parsed.
Use @level("beginner");, @level("intermediate");, or @level("advanced"); near the top of the program.
Invalid prereq annotation
A @prereq annotation could not be parsed.
Use @prereq("basic-gates"); near the top of the program.
Std circuit name collision
An imported standard circuit and a user circuit exported the same name.
Rename the user circuit or choose a std import with a different exported circuit name.
Std observable name collision
An imported standard observable and a user observable exported the same name.
Rename the user observable or choose a standard-library Hamiltonian with a different exported name.
Std helper qubit requirement
A standard-library circuit helper was called with a register smaller than its minQubits metadata.
Allocate a larger qreg or choose a helper with a smaller minQubits requirement.
Unsupported observe statement
An observe block contains a state-changing or unsupported statement.
Keep observe blocks to metric, expect, assert probability, assert expectation, assert entangled, and assert equivalent statements.
Std observable qubit requirement
A standard-library observable was used with a register smaller than its minQubits metadata.
Allocate a larger qreg before using the imported Hamiltonian observable.
Invalid until block
An until retry block did not use the bounded classical-bit guard form.
Use until (flag == 1) max 10 { ... } with max between 1 and 32.
Unsupported conditional
The if statement is not a simple classical-bit guard.
Use the form if (m == 1) { X(q[1]); } with == or != on a measured bit.
Invalid constant expression
A const value could not be parsed as a numeric/PI expression.
Use numbers, PI, earlier constants and + - * /, e.g. const theta: Angle = PI / 4;
Unsupported gate
The operation is not part of the current browser runtime gate set.
Use H, X, Y, Z, S, T, CNOT, CZ, SWAP, CCNOT, Ry, Rz, CRy, CRz, CP, or mark the example as spec preview.
Unsupported noise model
An @noise annotation requested a model the runtime does not implement.
Use @noise("depolarizing", p), @noise("pauli", p), @noise("readout", p), @noise("amplitude_damping", p), or @noise("phase_damping", p) with p between 0 and 1.
Too many qubits
The browser simulator protects performance with a small qubit limit.
Keep playground examples at 5 qubits or fewer.
Spec-preview syntax
The code uses future N/M syntax that is documented but not executable here.
Use the supported runtime subset or keep the example as documentation preview.
Repeat capped
A repeat block exceeded the playground expansion limit.
Use repeat counts of 32 or fewer in browser examples.
Unknown target profile
An @target annotation references a profile the analyzer does not know.
Use @target("browser-statevector"), @target("ion-trap"), @target("superconducting"), or @target("neutral-atom").
Non-native target gate
A gate is supported by the playground but not native for the selected hardware profile.
Treat this as a capability warning; future compiler passes may decompose non-native gates.
Target depth recommendation
The estimated circuit depth exceeds the selected target profile recommendation.
Reduce repeat counts, simplify the ansatz, or split the algorithm into shallower stages.
Two-qubit gate budget
The circuit uses more two-qubit gates than the selected target profile recommends.
Reduce entangling gates where possible; they usually dominate hardware error.
Connectivity warning
A line-connectivity target detected a non-adjacent two-qubit operation.
Read the SWAP routing sketch in the diagnostic hint, then decide whether to route, remap, or choose an all-to-all profile.
Target qubit recommendation
The program uses more qubits than the selected target profile recommends.
Reduce register size or choose a target profile with a larger educational qubit budget.
Invalid constraints annotation
A @constraints annotation could not be parsed.
Use @constraints(maxDepth: 8, maxTwoQubit: 4, connectivity: "line").
Constraint qubit budget
The circuit exceeds its declared @constraints qubit budget.
Reduce register size or relax maxQubits for this experiment.
Constraint depth budget
The circuit exceeds its declared @constraints depth budget.
Shorten sequential gate chains, split the circuit, or raise maxDepth.
Constraint two-qubit budget
The circuit exceeds its declared @constraints two-qubit gate budget.
Reduce entangling operations or decompose the algorithm into a smaller budget.
Constraint connectivity
A line-connectivity constraint detected a non-adjacent two-qubit operation.
Read the SWAP routing sketch in the diagnostic hint, then decide whether to route, remap, or relax the connectivity constraint.
Invalid compiler annotation
An @compiler annotation could not be parsed.
Use @compiler(trace: true) to show compiler steps in the Trace tab.
Invalid mitigation annotation
An @mitigation annotation could not be parsed or requested an unsupported model.
Use @mitigation("readout") for readout noise or @mitigation("zne") for zero-noise extrapolation with a sample block.
Stabilizer runtime selected
The browser-stabilizer target accepted the bounded Clifford program.
No action is required; this informational diagnostic confirms tableau execution.
Stabilizer fallback required
The requested program contains a gate or statement outside the stabilizer-native contract.
Remove the unsupported feature or use browser-statevector with at most five qubits.
Sample shots capped
A sample block exceeded the bounded local shot budget.
Use 4,096 shots or fewer for local statevector and stabilizer execution.
Typed collection disabled
collect<K> was used without explicit NM-RFC-0012 negotiation.
Enable experimental.typedCollection or pass --experimental-typed-collection.
Duplicate typed collection
A program declared more than one collect<K> block.
Use one bounded collection artifact per program.
Typed collection budget
The compile-time K is outside the 1..4,096 result budget.
Reduce K; it is never silently capped because K is part of the result type.
Collection mode conflict
sample and collect were combined in one program.
Choose a histogram with sample or an ordered artifact with collect<K>.
Invalid collection result
The collection body does not end in exactly one resolved measure_all binding.
End with one let result: BitVec<N> = measure_all(q[start..end]); binding.
Collection seed required
The ordered typed result has no explicit deterministic seed.
Add @seed(<unsigned integer>); before fn main.
Unsupported collection runtime
Typed collection 0.1 was combined with noise or mitigation.
Remove @noise/@mitigation or use sample for an aggregate noisy histogram.
Stabilizer limit violation
A low-level tableau request is outside the 1–100 qubit contract.
Create a tableau with an integer qubit count from 1 through 100.
Invalid stabilizer qubit
A stabilizer operation references an unresolved or out-of-range qubit.
Resolve every target to an index inside the allocated tableau.
Unsupported stabilizer gate
A low-level gate request is outside the frozen Clifford/global-phase set.
Use the documented native gate set or route the program to statevector execution.
Invalid stabilizer shot budget
A low-level histogram request is outside the 1–4,096 shot contract.
Request an integer number of shots from 1 through 4,096.
Missing or unknown lowering target
Target-native lowering requires a published target profile.
Pass --target with one of the target ids published by the N/M spec catalog.
Invalid lowering source
Parser or semantic errors prevent target-native lowering.
Run nm check and resolve blocking diagnostics before transpiling.
Unsupported target lowering
No complete target-native decomposition exists for a remaining gate.
Choose another target, remove the gate, or wait for an additive lowering rule.
Lowering verification failed
The lowered circuit changed the statevector beyond the frozen tolerance.
Treat the output as unusable and inspect the lowering trace; do not execute it as equivalent code.
Non-native output invariant
A lowering result emitted a non-native gate without declaring it unsupported.
Treat the result as failed and report the target, gate, and trace as a compiler defect.
Invalid calibration id
The calibration id is empty or outside the frozen length contract.
Provide a non-empty id of at most 128 characters.
Invalid physical qubit
A physical qubit id is negative, non-integer, or duplicated.
Use unique non-negative integer physical qubit ids.
Invalid calibration value
A timestamp, error rate, duration, target, or typed field is malformed.
Use canonical UTC timestamps, error rates in [0,1], positive durations, and the documented field types.
Insufficient calibration capacity
The calibration exposes fewer enabled physical qubits than the logical program requires.
Enable enough physical qubits or reduce the logical register.
Invalid coupling graph
A coupling is duplicated, self-referential, or references an unknown physical qubit.
Declare each undirected edge once between two distinct declared qubits.
Disconnected placement graph
No enabled connected component can hold the complete logical register.
Provide a connected physical subset large enough for the workload or choose an all-to-all target.
Calibration input limit
The JSON, id, logical count, qubit list, or coupling list exceeds the 0.1 bounds.
Stay within 512 KiB JSON, 128 id characters, 256 qubits, and 4,096 couplings.
Invalid schedule placement
A gate has no unique logical-to-physical placement.
Provide every logical qubit exactly once and use distinct non-negative physical ids.
Invalid schedule duration
An operation duration is not a positive safe-integer nanosecond value.
Declare every gate and coupling duration as a positive integer within JavaScript's safe integer range.
Schedule dependency violation
An operation does not start at the deterministic ASAP boundary of its physical resources.
Start the operation at the maximum prior end time of all physical qubits it uses.
Schedule limit violation
The operation count or accumulated nanosecond timeline exceeds the frozen safe boundary.
Use at most 100,000 operations and keep all accumulated times within the safe integer range.
Schedule invariant violation
Operation ids, source order, placement, time arithmetic, or total duration drifted.
Reject the schedule and regenerate it with the checked target scheduling API.
Invalid QASM3 export source
Parser or semantic diagnostics prevent OpenQASM 3 export.
Run nm check and resolve blocking source diagnostics before export.
Missing trained parameters
A train block cannot be exported without completed final parameter values.
Complete training or provide final trained parameters before QASM3 export.
Empty QASM3 carrier
The source allocates no qubits to export.
Declare a non-empty qreg before exporting.
Strict QASM3 lowering failed
An operation could not be lowered into the frozen stdgates target.
Remove the unsupported operation or use preview mode with an explicit extension boundary.
QASM3 export invariant failed
The lowered carrier no longer satisfies the parser/export invariant.
Reject the carrier and report the source and lowering trace as a compiler defect.
Malformed QASM3 sidecar JSON
The sidecar JSON cannot be parsed.
Provide valid UTF-8 JSON produced by the versioned exporter.
Invalid QASM3 sidecar type
A required sidecar or embedded IR value has the wrong type.
Validate the sidecar against the documented 0.1, 0.2, or 0.3 reader contract.
Invalid QASM3 sidecar format
The sidecar format, carrier, or embedded IR identity is invalid.
Use nm-qasm3-sidecar@0.3 with nm-json-ir@0.1; legacy 0.1 and 0.2 remain readable.
Unsupported QASM3 sidecar version
No permanent reader or lossless migration exists for this version.
Use sidecar version 0.1, 0.2, or 0.3, or publish an explicit lossless migrator first.
Unknown QASM3 sidecar extension
The sidecar contains an unknown field or IR statement kind.
Remove unknown extensions or introduce them in a new versioned contract.
QASM3 sidecar limit
The JSON or recursive IR statement count exceeds the bounded reader contract.
Stay within 40 MiB JSON and 100,000 IR statements.
QASM3 sidecar projection mismatch
Module or native-statement projections differ from the embedded IR.
Reject the sidecar and regenerate all projections from one canonical IR.
Train block has no parameters
A train block requires at least one trainable param declaration.
Declare param theta: Angle = 0.1; before the circuit uses it.
Unknown training objective
The objective target is not a bound expectation in the same main body.
Bind a cost first with let cost = expect Z(q[0]); and target cost.
Duplicate train block
A program may contain only one train block in fn main.
Merge all directives into one train block.
Invalid train directive
A train directive, optimizer, step count, or learning rate is outside the supported contract.
Use 1..100 steps and an lr in (0, 5] with gd, momentum, or adam.
Training combination not supported
The parser recognized a reserved training feature whose runtime work package is not enabled yet.
Remove dataset or qng until its advertised capability is enabled.
Unknown training dataset
The train block names an id outside the embedded dataset registry.
Choose an id from the versioned embedded dataset catalog.
Dataset training has no encoding
Supervised train blocks require an encode statement that consumes each row.
Add encode(sample_row(), q, method: "angle"); before the objective.
Invalid training input
The direct training API received an unsupported optimizer, objective, gradient method, or step budget.
Use a supported method and an integer step count from 1 through 100.
Invalid training learning rate
The learning rate is non-finite, non-positive, or above the frozen limit.
Use a finite learningRate in (0, 5].
Invalid training objective
The objective binding is not a bounded identifier.
Use the name of an expectation binding, up to 128 identifier characters.
Training cost failed
The objective is missing, execution failed, or the cost is non-finite.
Bind a finite expectation cost and resolve runtime diagnostics.
Training gradient failed
Gradient evaluation failed or produced a non-finite value.
Use a supported differentiable circuit and finite parameter values.
Training numeric invariant failed
A parameter or optimizer update became non-finite.
Reject the run and reduce the learning rate or correct invalid numeric inputs.
Unknown QML loss
The checked loss API received an unsupported loss kind.
Use mse, hinge, or cross_entropy.
Invalid QML loss input
Prediction is outside [-1, 1] or the binary label is not exactly -1 or 1.
Provide a finite expectation prediction and a normalized binary label.
QML loss invariant failed
Loss or analytic gradient evaluation produced a non-finite result.
Reject the result and report the bounded input as a numerical defect.
Invalid SPSA workload
Parameter values, step index, total steps, or descent direction violate the bounded contract.
Use 1..8 finite parameters, 1..100 steps, and descentSign -1 or 1.
Invalid SPSA gain option
A gain schedule option is non-finite or outside its supported interval.
Use a/c > 0, alpha/gamma in (0, 1], and stability >= 0.
Invalid SPSA random source
The random source threw or returned a value outside [0, 1).
Use a deterministic seeded source returning finite samples in [0, 1).
SPSA objective evaluation failed
A perturbed objective threw, was missing, or returned a non-finite cost.
Ensure both perturbed candidates return finite costs.
SPSA numeric invariant failed
The gain, perturbation, midpoint, scale, or parameter update became non-finite.
Reject the update and correct the numeric workload or gain schedule.
Invalid adjoint input
Parameter values or objective binding violate the bounded direct API contract.
Use at most eight finite known parameters and a bounded objective identifier.
Unsupported adjoint program
The program includes a statement or parameterized gate outside the adjoint subset.
Use the documented noiseless unitary subset or fall back to parameter-shift.
Adjoint numeric invariant failed
A forward, observable, reverse, or gradient value became non-finite.
Reject the result and report the circuit as a numerical defect.
Invalid embedded dataset identity
The embedded dataset format, version, or id is outside contract 0.1.
Use a registered nm-embedded-dataset@0.1 id.
Invalid embedded dataset shape
Rows, features, labels, or evaluation values violate the bounded numeric schema.
Use 1..8 aligned finite features, -1/+1 labels, and no more than 80 rows.
Invalid embedded dataset split
Train, validation, and test indices are empty, overlapping, out of range, or incomplete.
Publish non-empty disjoint splits that cover each row exactly once and retain both labels in train.
Malformed embedded dataset JSON
The dataset JSON cannot be parsed.
Provide valid UTF-8 JSON produced by the versioned serializer.
Unknown embedded dataset field
The dataset or one of its rows/splits contains an unknown property.
Remove unknown fields or publish a new versioned contract first.
Embedded dataset limit
The JSON byte size, row count, or another bounded collection exceeds contract 0.1.
Stay within 256 KiB JSON, 80 rows, and eight features.
Unsupported embedded dataset version
No permanent reader or explicit lossless migration exists for this version.
Use version 0.1 or publish and test a lossless migrator.
Amplitude encoding is not first
Amplitude encoding must initialize its register before gates or another encoding use it.
Move encode(... method: "amplitude") before every operation on that register.
Encoding feature overflow
The dataset row has more features than the selected amplitude capacity or IQP register size.
Use a larger register or reduce the feature vector.
Zero amplitude vector
An all-zero feature vector cannot be L2-normalized for amplitude encoding.
Provide at least one non-zero feature.
Invalid feature encoding input
The state, qubit indices, method, or feature vector violates the bounded finite-input contract.
Use a normalized finite 1–8 qubit state, unique in-range indices, and 1–8 finite features.
Feature encoding invariant failed
The encoding operation produced a non-finite state amplitude.
Reject the result and report the bounded input as a numerical defect.
Barren plateau risk
A wide, deep parameterized ansatz may have vanishing gradient variance.
Use fewer layers, layer-wise training, or identity-block initialization.
Quantum kernel guardrail
Quantum kernels require 1..32 finite labeled rows, 1..5 integer qubits, angle/IQP encoding, and a finite positive ridge/model/query contract.
Validate row features and -1/+1 labels, qubit/encoding options, ridge, model identity, and query values before kernel work.
QAOA graph guardrail
QAOA requires a bounded unique weighted graph, 1..3 layers, 1..100 steps, a valid seed, and GD or SPSA.
Remove invalid or duplicate edges and use finite bounded weights, layers, steps, optimizer, and seed values.
Typed classical values are not negotiated
Int, Float, or bounded Array declarations were used while the NM-RFC-0005 feature remained disabled.
Enable experimental.typedClassicalValues explicitly on the active Core, CLI, LSP, VS Code, Worker, or Playground surface.
Invalid typed classical declaration
A typed declaration, helper expression, or fixed array bound could not be parsed.
Use let n: Int = 1; or let bits: Array<Bit, 2> = [a, b]; within the published bounds.
Typed classical type mismatch
The declared Int, Float, or array type differs from the expression type.
Use explicit bit_to_int or int_to_float conversion and keep array element types uniform.
Invalid classical reference or bound
A declaration references an unavailable value, duplicates a binding, or indexes outside a fixed array.
Reference an earlier value once and keep literal indexes inside 0..N-1.
Typed classical runtime contract failed
Evaluation produced division by zero, a non-finite or unsafe number, a missing value, or an invalid bounded array.
Reject the run and keep every intermediate value finite, initialized, and inside its declared type bound.
Target capabilities are not negotiated
@target_capabilities was used while NM-RFC-0006 remained disabled.
Enable experimental.targetCapabilityConstraints explicitly on the active Core, CLI, LSP, VS Code, Worker, or Playground surface.
Invalid target capability declaration
The profile, gate_set, connectivity, max_error, field uniqueness, or source bound is invalid.
Use one bounded @target_capabilities annotation with a profile and at least one valid constraint.
Target profile mismatch
The declared capability profile is unknown or differs from the active @target profile.
Select one registered profile consistently across both annotations.
Native gate-set mismatch
The program uses an undeclared or non-native source gate.
Declare every source gate and choose only gates native to the selected profile.
Connectivity mismatch
The requested topology does not exactly match the selected target profile.
Use the profile connectivity exactly; topology subsumption is intentionally disabled.
Reference error budget failed
A bounded reference error is unavailable or exceeds max_error.
Choose a profile with a published reference model or increase the bounded error budget.
Function results are not negotiated
A typed main result signature was used while NM-RFC-0007 remained disabled.
Enable experimental.functionResults explicitly on the active Core, CLI, LSP, VS Code, Worker, or Playground surface.
Invalid function result declaration
The Result<T, Error> signature, typed return, result type, or symbolic error code is malformed or out of bounds.
Use one final return ok(value); or return error("UPPER_SNAKE_CODE"); matching a bounded declared T.
Function result type mismatch
The ok(...) expression does not exactly match the T declared by Result<T, Error>.
Return the declared scalar or fixed array type and use explicit conversions instead of implicit coercion.
Invalid function result control flow
A typed main return is missing, duplicated, non-final, or nested in unsupported control flow.
Compute the result first and end main with exactly one top-level ok(...) or error(...) return.
Function result runtime contract failed
A validated typed result expression could not be evaluated or no longer matched its declared type.
Reject the engine execution without fabricating a user-program error result, then correct the referenced runtime value.
Composed noise is not negotiated
A noise profile declaration or activation was used while NM-RFC-0017 remained disabled.
Enable experimental.composedNoise explicitly on the active Core, CLI, LSP, VS Code, Worker, or Playground surface.
Invalid noise profile declaration
The profile name, activation, block shape, or declaration count is outside the closed grammar.
Declare one through four uniquely named profiles and activate exactly one declared name.
Invalid composed-noise channel
A channel placement, gate, model, probability, Pauli word, or statement shape is unsupported.
Use one published local, correlated_pauli, or readout channel with a literal probability in 0..0.25.
Composed-noise budget exceeded
The source exceeds the profile, channel, qubit, shot, or probability bound.
Stay within four profiles, eight channels per profile, five statevector qubits, 4,096 shots, and probability 0.25.
Invalid composed-noise scope
A register view is unknown, reversed, out of range, empty, or dynamically sized.
Use an exact compile-time qreg index or contiguous slice from the current program.
Invalid correlated Pauli channel
The Pauli word is unsupported, all identity, or differs from the resolved scope width.
Use a 2..5-character I/X/Y/Z word with at least one non-identity character and exact scope width.
Missing deterministic sampling context
A composed profile lacks an explicit seed, sample block, or supported browser-statevector target.
Provide @seed, one bounded sample block, and @target("browser-statevector").
Incompatible noise feature
Composed noise was mixed with stable @noise, @mitigation, QEC experiments, or another incompatible runtime mode.
Run the composed profile by itself and keep mitigation or QEC experiments in a separate program.
Unmatched composed-noise channel
A channel gate or measurement scope cannot match any operation in the monomorphized circuit.
Correct the exact gate and register view or remove the no-op channel.
Composed-noise integrity or export failure
The resolved carrier is malformed, tampered, or cannot be represented losslessly by the selected exporter.
Recompile from source and use JSON IR until a versioned target carrier preserves channel scope and ordering.
Probability assertion failed
The measured state-vector probability did not satisfy the assertion.
Place assertions before measurement or adjust the expected threshold.