windmill-labs/windmill · error
oh no
Error message
oh no
What it means
`__assert_fail` is the libc function invoked when a C `assert()` fails. In the WASM Ruby parser it is stubbed to panic with the message "oh no", meaning a C-level assertion inside the VM or a linked native extension has failed. Unlike the other stubs this indicates a genuine assertion failure, not merely an unimplemented API.
Source
Thrown at backend/parsers/windmill-parser-ruby/src/wasm_libc.rs:292
_args: ...
) -> c_int {
panic!("vsnprintf is not supported");
}
#[no_mangle]
pub extern "C" fn clock_gettime(ptr: usize, new_size: usize) {
panic!("clock_gettime is not supported");
}
// int snprintf( char* restrict buffer, size_t bufsz, const char* restrict format, ... );
#[no_mangle]
pub extern "C" fn snprintf() {
panic!("snprintf is not supported");
}
#[no_mangle]
pub extern "C" fn __assert_fail(_: *const i32, _: *const i32, _: *const i32, _: *const i32) {
panic!("oh no");
}
View on GitHub (pinned to e474e8803c)
Solutions
- Identify which native extension/gem is asserting and fix or remove the offending input
- Simplify the Ruby code being parsed to avoid the asserted path
- Upgrade the gem/VM; the assertion indicates a violated precondition in native code
Defensive patterns
Strategy: try-catch
Try / catch
match std::panic::catch_unwind(|| parse_ruby(source)) {
Ok(res) => res,
Err(e) => {
// 'oh no' = a native assert() failed inside the VM; report the offending script/gem
report_native_assertion(source, e);
Err("native assertion failure in ruby parser sandbox".into())
}
} Prevention
- Fuzz-test new gems against the wasm parser before production use
- Isolate parsing per-request so an assertion abort cannot poison shared state
- Keep the Ruby VM and native gems updated to reduce internal assertion failures
When it happens
Trigger: A C assertion fails inside code running in the wasm Ruby VM, routing to the exported `__assert_fail` shim.
Common situations: Buggy or misused C-extension gem asserting on invalid input while the parser executes; VM internals asserting invariants under unusual scripts.
Related errors
- clock is not supported
- fprintf is not supported
- fputs is not supported
- fputc is not supported
- fdopen is not supported
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/99578b424af94fc2.
Report an issue: GitHub.