wailsapp/wails · error

CoInitializeEx failed with E_OUTOFMEMORY

Error message

CoInitializeEx failed with E_OUTOFMEMORY

What it means

Error "CoInitializeEx failed with E_OUTOFMEMORY" thrown in wailsapp/wails.

Source

Thrown at v3/pkg/w32/ole32.go:38

	procCoInitialize          = modole32.NewProc("CoInitialize")
	procOleInitialize         = modole32.NewProc("OleInitialize")
	procCoUninitialize        = modole32.NewProc("CoUninitialize")
	procCoCreateInstance      = modole32.NewProc("CoCreateInstance")
	procCreateStreamOnHGlobal = modole32.NewProc("CreateStreamOnHGlobal")
	procRegisterDragDrop      = modole32.NewProc("RegisterDragDrop")
	procRevokeDragDrop        = modole32.NewProc("RevokeDragDrop")
)

func CoInitializeEx(coInit uintptr) HRESULT {
	ret, _, _ := procCoInitializeEx.Call(
		0,
		coInit)

	switch uint32(ret) {
	case E_INVALIDARG:
		panic("CoInitializeEx failed with E_INVALIDARG")
	case E_OUTOFMEMORY:
		panic("CoInitializeEx failed with E_OUTOFMEMORY")
	case E_UNEXPECTED:
		panic("CoInitializeEx failed with E_UNEXPECTED")
	}

	return HRESULT(ret)
}

func CoInitialize() {
	procCoInitialize.Call(0)
}

func CoUninitialize() {
	procCoUninitialize.Call()
}

func CoCreateInstance(clsid *syscall.GUID, dwClsContext uintptr, riid *syscall.GUID, ppv uintptr) HRESULT {
	ret, _, _ := procCoCreateInstance.Call(
		uintptr(unsafe.Pointer(clsid)),

View on GitHub (pinned to 0e754b1b40)

Solutions

  1. Free memory in the process before initializing COM; E_OUTOFMEMORY indicates the system could not allocate the COM state for the thread.
  2. Reduce memory pressure or retry after releasing unused allocations.

When it happens

Trigger: Occurs when CoInitializeEx returns E_OUTOFMEMORY, indicating insufficient memory to initialize the COM library.

Common situations: See trigger scenarios.


AI-assisted analysis of wailsapp/wails@0e754b1b40 (2026-08-15). Data as JSON: /api/errors/c97cef27ab90dd9e. Report an issue: GitHub.