擬人化失敗時のトークン返還と、チェックイン体験の細部を直した話

擬人化が失敗したのに、トークンが戻らない

wagahiでは、撮影した写真をAIで擬人化する際にトークンを消費します。ところが、擬人化処理が何らかの理由で失敗した場合にトークンが正しく返還されないバグが発覚しました。今回は、その修正の裏側についてお伝えします。

2つのバグが絡み合っていた

調査の結果、原因は1つではなく2つの問題が組み合わさっていました。

  • トランザクションの汚染: トークン返還処理を親トランザクションと同じ範囲で実行していたため、返還処理自体が失敗すると、本来必要な「処理失敗」のステータス更新までロールバックされてしまい、擬人化ステータスが「処理中」のまま永久に固着してしまう問題がありました。返還処理を独立したトランザクションとして切り出すことで解決しています
  • 再試行時の過剰返還: リクエストを再試行する際、実際にはトークンを消費していないにもかかわらず、返還処理が誤って呼び出されてしまうケースがありました。再試行回数や特典利用状況を確認するロジックを追加し、誤った返還を防止しています

チェックイン画面の使い勝手も改善

同じ時期に、位置情報を使ったチェックイン機能でも2つの改善を行いました。1つは、範囲外にいる状態でチェックインボタンを押すと「チェックイン済み」と誤って表示されてしまう不具合の修正です。原因は、範囲外エラーが汎用的なエラーハンドラーに落ちてしまい、フロントエンド側で誤判定していたことにありました。もう1つは、対象スポットまでの距離をあらかじめ計算し、範囲外の場合はボタンを無効化した上で「チェックインまで:〇〇m」と表示する改善です。

開発者としての振り返り

トークンという「価値」を扱う処理は、失敗時の挙動まで含めて厳密に設計する必要があります。今回のような小さな不具合の積み重ねが、ユーザー様の信頼を損なう最大の要因になり得るため、地道な検証を継続しています。


本記事は2026年6月時点の情報に基づいています。

著者: 株式会社シーテン — インフラ系から宇宙関連システムまで20年以上の開発経験を持つ技術者集団。2025年より生成AI・AIエージェントを活用したAI駆動開発に本格参入し、自社プロダクト「wagahi」の開発を通じて実践知見を蓄積中。

投稿者プロフィール

Mark4
Mark4