wailsapp/wails · error
CoInitializeEx failed with E_INVALIDARG
Error message
CoInitializeEx failed with E_INVALIDARG
What it means
Error "CoInitializeEx failed with E_INVALIDARG" thrown in wailsapp/wails.
Source
Thrown at v3/pkg/w32/ole32.go:36
procCoInitializeEx = modole32.NewProc("CoInitializeEx")
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 {View on GitHub (pinned to 0e754b1b40)
Solutions
- Pass a valid concurrency model flag to CoInitializeEx: COINIT_APARTMENTTHREADED or COINIT_MULTITHREADED; any other value yields E_INVALIDARG.
- Ensure the first argument (reserved) is always 0/nil as required by the API.
When it happens
Trigger: Occurs when CoInitializeEx returns E_INVALIDARG, typically due to an invalid concurrency model flag passed for COM initialization.
Common situations: See trigger scenarios.
AI-assisted analysis of wailsapp/wails@0e754b1b40 (2026-08-15).
Data as JSON: /api/errors/00b0e79524e67e64.
Report an issue: GitHub.