pub const init_single_threaded: Threaded = init: {
const env_block: process.Environ.Block = if (is_windows) .global else .empty;
break :init .{
.allocator = .failing,
...
That initializes the io with a failing allocator see std.Io.Threaded.init_single_threaded, so you can’t use it if you want to allocate anything, instead use std.Io.Threaded.init or juicy main like @skdishansachin suggested.