First Map troubleshooting

Use this guide for the canonical app in examples/maplibre-quickstart. Start with the deterministic lane:

npm run demo:quickstart:mock

If that lane fails, the problem is in the app, SDK, local browser, or fixture contract. It does not depend on a public service or network-hosted basemap.

Endpoint or protocol errors

First Map accepts an absolute HTTP(S) GeoServices FeatureServer layer or OGC API Features endpoint. The visible form and VITE_HONUA_QUICKSTART_ENDPOINT use the same validator.

Authentication failures remain authentication-required; unsupported operations remain unsupported; ambiguous discovery remains source-selection-required. They never become an empty successful map.

Browser network and CORS failures

An anonymous public endpoint must allow the browser origin. A command-line request can succeed while the browser is still blocked by CORS.

Required fixture Playwright actively aborts any HTTP(S) request outside its loopback origin. Public network evidence runs only from .github/workflows/first-map-live-evidence.yml or with explicit local opt-in:

HONUA_FIRST_MAP_LIVE_ENABLED=true npm run evidence:first-map:live

Bounds, geometry, and query plans

Source, freshness, and cache truth

The evidence panel distinguishes:

The scheduled live envelope and screenshot preserve the same fields. They do not replace deterministic fixture proof.

Runtime and cleanup

Inspect:

Useful runtime fields include sourceProtocol, sourceId, sourceAttribution, sourceObservedAt, sourceFreshness, cacheStatus, degradation, planFingerprint, featureCount, layerIds, timing-budget fields, and cleanup state. Disposal is idempotent and must remove the SDK mount, popup, handlers, and borrowed MapLibre resources within the published cleanup budget.

Validation

npm run demo:quickstart:typecheck
npm run demo:quickstart:test
npm run demo:quickstart:parity
npm run demo:quickstart:copyability
npm run demo:quickstart:build
npm run test:playwright:quickstart

The focused required command covers Chromium. The release workflow repeats the same test in Chromium, Firefox, and WebKit and repeats source and packed SDK modes. If only the packed lane fails, inspect honua-sample-sdk-resolution.json before changing the sample.