概要
E2E の auth 系シナリオ (auth.feature) が間欠的に 401 で落ちる。落ちるのは常に以下の組み合わせ (全部または一部):
Display user info when logged in (geonic whoami → Authentication failed)
Whoami with JSON format (同上)
Automatic token refresh on 401 (geonic entities list → Authentication failed)
いずれも Given I am logged in (tenant-admin の /auth/login 直 fetch) は成功 した直後に、CLI サブプロセスの認証付きリクエストが 401 になる。
証拠 (2026-07-14 ローカル調査)
同一コード・同一マシンでの実行結果:
時刻
ブランチ
実行方法
結果
14:53
fix-138 (本体最新)
npm run test:e2e
141 全パス
14:56
fix-138
npm run test:e2e
141 全パス
15:04
fix-139 (本体 pinned 旧)
npm run test:e2e
1 failed (whoami)
15:08-12
fix-139
npx cucumber-js auth.feature:37 ×3
全パス
15:2x
fix-139 (rebase 後、本体最新)
npm run test:e2e
3 failed
15:3x
fix-138 (変更なし )
npm run test:e2e
3 failed (同一シナリオ)
15:4x
fix-139
npx cucumber-js tests/e2e/features/auth.feature (パス引数あり・全141実行)
141 全パス
15:4x
fix-139
npm run test:e2e
3 failed
15:5x
fix-139
npx cucumber-js (引数なし)
3 failed
観察できたパターン:
パス引数付き実行 (シナリオ実行順が変わる) では落ちたことがない 。引数なし実行は同時期に高確率で落ちる → 実行順序依存の状態汚染が濃厚
CLI 変更の有無と無関係 (変更ゼロの base ブランチで再現)
本体のバージョン (pinned 326b12aa / 最新 53e27682) とも無関係に発生
マシン負荷・時間帯で発生率が変わる。同一invocationでも 14時台は 2連続パス、15時台は連続失敗
CI への影響
週次互換性チェック 2026-07-13 の失敗 (run ) はこの flake が原因とみられる (retry 3 回とも whoami 401)。#140 の調査により、当該 run は lockfile バグで旧 pinned 本体をテストしていた ことが判明しており (= 7/6 の成功 run と同一コード)、コード互換性の問題ではありえない。
調査の手がかり
落ちる 3 シナリオは全部 tenant-admin ログイン + 認証付きリクエスト (or リフレッシュフロー)。super admin 系は落ちない
loginAttempts コレクションは preserved (Before フックで baseline 復元) だが、サーバー内のインメモリ なレート制限/ロックアウト状態はシナリオ間でリセットされない可能性
CLI のプロアクティブトークンリフレッシュ (fix: token+apiKey 共存時のセッション切れを修正 #98 ) が絡む可能性 (Automatic token refresh シナリオも落ちる)
ローカル調査時、別プロセスの geonicdb local-server が port 3000 を占有しており、E2E サーバーは 3001 にフォールバックしていた時間帯がある (直接の因果は未確認)
期待する対応
根本原因の特定 (シナリオ実行順を固定/シャッフルして再現条件を絞る、サーバー側 401 の理由をログで捕捉する等)
落ちる原因となる状態汚染の解消、または Before フックでのサーバー側インメモリ状態リセット
それまでの暫定として、当該シナリオの安定化 (リトライではなく原因ベースで)
概要
E2E の auth 系シナリオ (
auth.feature) が間欠的に 401 で落ちる。落ちるのは常に以下の組み合わせ (全部または一部):Display user info when logged in(geonic whoami→Authentication failed)Whoami with JSON format(同上)Automatic token refresh on 401(geonic entities list→Authentication failed)いずれも
Given I am logged in(tenant-admin の/auth/login直 fetch) は成功した直後に、CLI サブプロセスの認証付きリクエストが 401 になる。証拠 (2026-07-14 ローカル調査)
同一コード・同一マシンでの実行結果:
npm run test:e2enpm run test:e2enpm run test:e2enpx cucumber-js auth.feature:37×3npm run test:e2enpm run test:e2enpx cucumber-js tests/e2e/features/auth.feature(パス引数あり・全141実行)npm run test:e2enpx cucumber-js(引数なし)観察できたパターン:
CI への影響
週次互換性チェック 2026-07-13 の失敗 (run) はこの flake が原因とみられる (retry 3 回とも whoami 401)。#140 の調査により、当該 run は lockfile バグで旧 pinned 本体をテストしていたことが判明しており (= 7/6 の成功 run と同一コード)、コード互換性の問題ではありえない。
調査の手がかり
loginAttemptsコレクションは preserved (Before フックで baseline 復元) だが、サーバー内のインメモリなレート制限/ロックアウト状態はシナリオ間でリセットされない可能性期待する対応