Developer support

Diagnose the failing boundary.

Select the runtime and symptom. Voided gives you the smallest relevant command sequence and the evidence worth including.

Guided triage

Run the focused checks.

Choose the failing boundary. Copy and run the generated commands from the repository root.

SAFE SHARING BOUNDARYEvidence in. Secrets out.

Include versions, platform, exact public error, and a minimal reproduction.

Remove plaintext, keys, deck order, roots, environments, customer data, and crash memory.

commands
# Browser / WASM
# Backend or native module will not load

npm --prefix packages/e2ee-client run verify:release
npm --prefix packages/e2ee-client run test:wasm
npm --prefix packages/e2ee-client run smoke:package
WHEN YOU REPORT IT
  • Package or crate version
  • OS, architecture, browser, or Node version
  • Exact public error text
  • Whether the failure repeats from a clean start
Failure ownership

Start with the boundary.

Identify whether the package, backend, artifact, key, or application lifecycle owns the failure before changing code.

WASM will not load
Configure the exact artifact URL before first use. Confirm the packaged manifest and binary travel together. Voided deliberately refuses a silent TypeScript replacement for Fuse or Recovery Deck.
Native module rejected
Run verify:release:current. Confirm OS, architecture, C library, Node version, manifest hash, package version, and build ID all match.
Artifact will not open
Do not “repair” bytes. Confirm the complete artifact, expected key, and package line. Wrong keys, tampering, truncation, non-canonical fields, and unsupported versions must fail.
Recovery fails
Validate exactly 52 canonical cards with no duplicates. Confirm the exact physical order and wrapper pair. Do not log the deck or derived key while debugging.
Compression is absent
Browser high-level encryption leaves compression off by default. Opt in only when the whole plaintext shares one trust boundary.
Cross-tab key race
Keep one lifecycle writer per key ID. Add an application-owned transactional lock around concurrent rotation, import, migration, replacement, or deletion.
Compatibility

Tested platforms.

Targets outside this matrix should build from tagged source and pass the release checks before production use.

Safari / WebKitSupported

Current releases; browser WASM and stateful client path.

Chromium browsersSupported

Current releases; browser WASM and stateful client path.

FirefoxBest effort

Not a Voided 1.0 release gate.

Node.js18+

CJS and ESM package entry points.

macOSarm64

Verified native prebuild.

Linuxx64 GNU

glibc 2.34 or newer; packed runtime smoke passed on glibc 2.39.

Windowsx64 MSVC · RC

Hash and provenance verified; real Windows execution is pending.

RustNative + WASM

Feature selection depends on target and required primitives.

Escalation

Share evidence,
never secret material.

Type a concept or API name.