Tech Blog
技術ブログ
自社で運用している本番システムで実際に起きたことを、運用している当事者が書いています。障害の症状・原因・直し方を、どのファイルの何行目を見て書いたかまで記事ごとに残しています。日本語と英語で同じ内容を公開しています。
- cqw(container-query)は、DOM構造の変更で黙って効かなくなる
- buildSignagePayloadForClassを使わない盤面プレビューは自動ブロックが実機と食い違う
- pdfjs-distのstandard_fontsがNext.js standaloneに同梱されない
- 送信ボタンをFormDataで判定しないとハイドレーション前は押せない
- 同一フィードのURL重複でON CONFLICT DO UPDATEが21000で全断した
- Stripe webhook冪等台帳のINSERT失敗、23505以外も200で握り潰していた
- turbo.jsonにpassThroughEnvが無いとテストが黙って全skipのままCIがgreenになる
- ポーリングだけDateが文字列化し、getTime is not a functionで盤面が落ちた
- setContentView前はinsetsControllerがnullでImmersiveが効かない
- キオスク端末の消灯がstartActivity1本頼りで、失敗すると朝まで点灯したままになる
- maybeSingleで1件決め打ちすると、複数行ヒットでPGRST116の404になる
- SECURITY DEFINER関数はPUBLIC EXECUTE既定でanonから直接呼べる
- 相乗りキーの設定行をロック無しで読んで→マージして→書くと、同時保存でキーが消える
- 学年はあるが学科は無い状態だけ「学科を追加」の導線が無かった
- 規約改定の再同意フォームがauto_renewをリセットしない
- transform:scaleで固定サイズに縮小表示していても、メディアクエリは実ビューポート幅で評価される
- left:50%とwidth:fit-contentを組むとmax-widthが効かない
- insetのbox-shadowで描いた縁取りが子要素の背景に隠れて消える
- 編集フォームが最新の選択肢一覧に無い選択を自動で間引き、無関係な保存で対象が黙って消えた
- 非数値のenv変数はNaNとして??をすり抜け、embeddingが0件・fetchが即abortになった
- 親ページの許可ロールだけ絞り込み、子コンポーネント内の別ロールガードを直し忘れて未捕捉の403例外を出した
- 決済成功後のDB反映失敗をカード失敗と誤認し、二重請求になりかけた
- 監査ログのRLS policyがactor_user_id=NULLを許すと、乗っ取られたアカウントが操作痕跡を消せる
- stickyのtop:0が残ったままfixedにすると下部固定バーが全画面化する
- 配布パッケージの漏洩検査は、grepの対象パスがパッケージの半分しか見ていなかった
- 新しい httpOnly cookie を追加してデプロイすると、ログイン済みユーザーだけ401になる
- middlewareのmatcher除外に登録し忘れた公開ページが、匿名端末をログイン画面へ誤誘導していた
- 契約更新のたびに枠を複製し、旧行を終了し忘れると在庫定員が二重に消費される
- ORDER BYの無いLIMIT 1が、複数テナントのstagingで別の校のadminを返す
- Next.js の proxy.ts が API キー認証のエンドポイントもログイン画面へ飛ばしていた