Summary
The Windows release binary (flapi-windows-amd64.zip) crashes immediately at startup on every Windows host I've tested, with an unhandled C++ exception. The crash fires consistently after credential-manager init logs and before any DuckDB engine init log line. Reproduces across at least 4 releases.
--validate-config always passes; the crash is purely at runtime initialization.
Environment
- OS: Windows 10 Pro (build 19045)
- Architecture: AMD64
- DuckDB file: tested with both an existing file created by DuckDB 1.5.1 and a fresh file flapi itself creates (via
--access-mode READ_WRITE)
- Telemetry: disabled three ways (
--no-telemetry CLI flag, DATAZOO_DISABLE_TELEMETRY=1, FLAPI_NO_TELEMETRY=1) — no change
Crash signature (consistent across versions)
[INFO] Initializing cloud storage credentials...
[INFO] Credential Manager Status:
[INFO] S3: not configured
[INFO] GCS: not configured
[INFO] Azure: not configured
[ERROR] Unhandled Windows exception caught!
[ERROR] Exception code: e06d7363
[ERROR] Address: 00007FFE6C655369
[ERROR] Writing crash dump to crash_dump_<pid>.dmp
0xE06D7363 is the standard MSVC magic number for a throw statement, so something is throwing an exception that nothing catches. The address is consistent across runs and across versions, suggesting it's the same throw site.
Versions tested (all crash identically)
| Version |
Result |
| v26.04.22 (latest) |
crash |
| v26.04.21 |
crash |
| v26.04.03 |
crash |
| v26.03.26 |
crash |
Minimal reproduction
- Download
flapi-windows-amd64.zip from any release
- Extract
flapi.exe
- Create
config.yaml:
project-name: repro
project-description: Windows crash repro
template:
path: './sqls'
duckdb:
db-path: ./fresh.duckdb
access-mode: READ_WRITE
threads: 1
max-memory: 1GB
- Create empty
sqls/ directory
- Run:
flapi.exe -c config.yaml --no-telemetry
Same crash, same address.
Diagnostics ruled out
I bisected and ruled out the obvious candidates:
- SQLite ATTACH connection — removing the entire
connections: block doesn't fix it
- Existing DuckDB file format — crashes equally with a fresh empty file flapi creates itself
- Telemetry — disabled all three ways, no change in behavior
- Config schema —
--validate-config passes cleanly; all _ keys converted to - per the v1.0+ schema
- Path resolution — tested with absolute and relative paths
- Credentials — no S3/GCS/Azure credentials configured (also tested with
AWS_ACCESS_KEY_ID set to a dummy value, no change)
Hypothesis
The crash appears to be in the DuckDB engine init path (the next initialization phase after credential manager finishes logging). Recent commits like "Explicitly set MSVC static CRT (/MT) to fix LNK2038 with DuckDB 1.5.0" and "Switch Windows vcpkg triplet to x64-windows-static for DuckDB 1.5.0 /MT compatibility" suggest the Windows build path has had CRT-related fragility before. The bug persisting across 4 releases suggests the Windows binary may not be getting a functional smoke test in CI before release.
Workaround I'm using
Running the Linux binary inside WSL2 — works as expected.
Suggested triage
If the CI matrix doesn't include a step like "launch flapi.exe with a minimal config and curl /health on a Windows runner", that would catch this regression. I'm happy to:
- Share the
crash_dump_*.dmp file
- Run additional diagnostics with a debug build if one is available
- Test fixes on Windows 10 Pro 19045 / Windows 11
Thanks for flAPI — even with this Windows wrinkle, the YAML-driven endpoint pattern + DuckDB integration is one of the cleanest data-API designs I've evaluated.
Summary
The Windows release binary (
flapi-windows-amd64.zip) crashes immediately at startup on every Windows host I've tested, with an unhandled C++ exception. The crash fires consistently after credential-manager init logs and before any DuckDB engine init log line. Reproduces across at least 4 releases.--validate-configalways passes; the crash is purely at runtime initialization.Environment
--access-mode READ_WRITE)--no-telemetryCLI flag,DATAZOO_DISABLE_TELEMETRY=1,FLAPI_NO_TELEMETRY=1) — no changeCrash signature (consistent across versions)
0xE06D7363is the standard MSVC magic number for athrowstatement, so something is throwing an exception that nothing catches. The address is consistent across runs and across versions, suggesting it's the same throw site.Versions tested (all crash identically)
Minimal reproduction
flapi-windows-amd64.zipfrom any releaseflapi.execonfig.yaml:sqls/directoryflapi.exe -c config.yaml --no-telemetrySame crash, same address.
Diagnostics ruled out
I bisected and ruled out the obvious candidates:
connections:block doesn't fix it--validate-configpasses cleanly; all_keys converted to-per the v1.0+ schemaAWS_ACCESS_KEY_IDset to a dummy value, no change)Hypothesis
The crash appears to be in the DuckDB engine init path (the next initialization phase after credential manager finishes logging). Recent commits like "Explicitly set MSVC static CRT (/MT) to fix LNK2038 with DuckDB 1.5.0" and "Switch Windows vcpkg triplet to x64-windows-static for DuckDB 1.5.0 /MT compatibility" suggest the Windows build path has had CRT-related fragility before. The bug persisting across 4 releases suggests the Windows binary may not be getting a functional smoke test in CI before release.
Workaround I'm using
Running the Linux binary inside WSL2 — works as expected.
Suggested triage
If the CI matrix doesn't include a step like "launch flapi.exe with a minimal config and curl /health on a Windows runner", that would catch this regression. I'm happy to:
crash_dump_*.dmpfileThanks for flAPI — even with this Windows wrinkle, the YAML-driven endpoint pattern + DuckDB integration is one of the cleanest data-API designs I've evaluated.