最高管理者専用 トラブルシューティングガイド

システム障害、データ不整合、アカウントロックダウン、業種別専門機能の使い方等の包括的な運用マニュアル(全26項目)

最高管理者 (SRE / 管理責任者) への警告

本ページに記載されている復旧手法(リストア、DB直接操作、セッション強制破棄など)は、システム全体に対する不可逆的な影響を及ぼす可能性があります。データ操作の実行前には必ず /api/backup から最新のJSONダンプを取得 してから作業にあたってください。
機密情報保護の観点から、このURL (`/dashboard/admin/guide`) は一般ユーザーに絶対に共有しないでください。

【重要】新規顧客へのアカウント付与と初期構築手順MEDIUM
原因・発生条件
新規契約・トライアル環境の提供時の正規運用フロー
出力ログ・シグネチャ例
手順の漏れが生じると、顧客がデータを保存できない孤立アカウントとなるため注意
解消フロー(最高管理者権限)
1. 最高管理者コンソール(`/dashboard/admin`)へ遷移する 2. 「新規組織(Organization)」を作成、または該当する組織の存在を確認する。 3. 「ユーザー(Users)」一覧からユーザーを新規作成し、対象の組織(OrgId)を紐づける。 4. システム設定(`/dashboard/settings`)にて、対象組織の業種(IndustryType)と機能フラグを有効化する。 5. 初期パスワードとシステムURLを、セキュアな経路(パスワード付きZIPファイルや別送メール)で顧客担当者へ提供する。
新規アカウントの権限(Role)設定ルールと特記事項HIGH
原因・発生条件
過剰または不足した権限付与による情報漏洩・操作障害の防止
出力ログ・シグネチャ例
Role: member | isSuperAdmin: false がデフォルト絶対値
解消フロー(最高管理者権限)
・admin: 顧客組織内の全権限・他ユーザー等管理可能(各社で原則1〜2名のみに限定) ・manager: 案件管理・各種承認(発注・支払など)の操作権限あり ・accountant: 経理処理・請求・仕訳エクスポートのみ ・member: 一般入力担当(閲覧と起案申請のみ) 【警告】「isSuperAdmin = true」のフラグは、システム開発保守メンバー(株式会社リンクデザイン等のコア運用者)にのみ付与してください。一般顧客に付与すると他社のデータへアクセス可能となります。
1. ユーザーによる「誤操作」での大規模データ削除CRITICAL
原因・発生条件
案件や取引先を一括削除してしまった等、人的オペレーションミス
解消フロー(最高管理者権限)
1. 直ちにシステム設定(`/dashboard/settings`)の「データ管理」へアクセス。 2. 前日または直近にエクスポートしたバックアップJSON(例: `backup_20260301.json`)を選択。 3. 「復元を実行」ボタンを押下。処理中は画面を閉じないでください。 ※部分的な復元はできないため、全データがバックアップ時点に戻ります。
2. バックアップデータのリストア失敗 (SyntaxError)HIGH
原因・発生条件
ローカル環境でJSONファイルを開き文字化けや括弧の欠損を発生させた
出力ログ・シグネチャ例
Error: Unexpected token '}' in JSON at position 1024
解消フロー(最高管理者権限)
リストアAPI `/api/restore` は厳密なJSON形式を求めます。VSCode等のエディタでJSONを開き、フォーマットエラーがないか確認してください。解決が困難な場合は一世代前のバックアップファイルを使用し、手動で差分を入力させるようユーザーへ通知します。
3. 請求書と仕訳明細の金額不一致HIGH
原因・発生条件
ネットワーク瞬断により請求書は発行されたが仕訳生成APIがタイムアウト
解消フロー(最高管理者権限)
請求書詳細画面から「仕訳データを再生成する」リンク(隠しコマンド扱いまたは今後実装予定)を踏むか、一括エクスポートしたJSON上で該当のInvoiceIDを特定し、直接DBツール(Prisma Studio等)経由で欠落したJournalEntryを作成します。
4. OCR解析結果が文字化け・常にエラーになるMEDIUM
原因・発生条件
OpenAI API側のダウンタイム、または一時的なRate Limit到達
出力ログ・シグネチャ例
429 Too Many Requests
解消フロー(最高管理者権限)
1. OpenAIのステータスページ(status.openai.com)を確認。 2. エラー画面が出た請求書は、ブラウザをリロードせず「手動入力モード」へ切り替えさせるようにユーザーへアナウンス。 3. 制限解除後、設定画面の「AI再接続テスト」を実施。
5. 新しい業種モードを追加した際に画面が真っ白になるMEDIUM
原因・発生条件
IndustryContextのlocalStorage値とDBの整合性が合っていない
解消フロー(最高管理者権限)
ユーザーにブラウザのキャッシュクリア(開発者ツール > Application > Local Storage > Clear)を指示するか、一度「汎用モード」へ強制リセットする緊急URLパラメーター `?reset_industry=true` を案内します。
6. 最高管理者自身のアカウントがロックアウトされたHIGH
原因・発生条件
セッションの有効期限切れ、またはGoogleアカウント側のパスワード変更
解消フロー(最高管理者権限)
一時的にVercelの環境変数 `ADMIN_EMAILS` に副管理者のメールアドレスを追加し、再デプロイ。副管理者アカウントでログインしてセッションを強制リセット(DBから該当ユーザーのセッショントークンを削除)します。
7. 契約更新期限が切れたユーザーがログインできないMEDIUM
原因・発生条件
ユーザーモデルの `is_approved` または `contractEndDate` の超過による仕様通りの遮断
解消フロー(最高管理者権限)
この挙動は正常です。ユーザーからの入金が確認でき次第、最高管理者コンソール(`/dashboard/admin`)にて該当ユーザーを見つけ、「契約期限の延長アイコン(カレンダー)」から日付を更新してください。即時ログイン可能になります。
8. 退職した社員のアクセス権を即座に剥奪したいMEDIUM
原因・発生条件
情報漏洩防止のための緊急対応要請
解消フロー(最高管理者権限)
最高管理者コンソールへ入り、該当社員のアカウントの右側にある「ステータストグル(緑色のバッジ)」をクリックし、「停止中」に変更します。進行中のセッションであってもページ遷移時に強制ログアウトされます。
9. 新規ライセンス発行時に招待メールが届かないLOW
原因・発生条件
送信サーバーの遅延または迷惑メールフィルターの適用
解消フロー(最高管理者権限)
相手の迷惑メールフォルダを確認指示。なお、発行自体はシステム上即時完了しているため、Googleで「そのメールアドレスを使って直接SSOログイン」すればシステムへは入場可能です。
10. データベース接続エラー(500 Internal Server Error)が頻発するCRITICAL
原因・発生条件
Railway側のPostgreSQLインスタンスの停止、またはコネクションプール枯渇
出力ログ・シグネチャ例
PrismaClientInitializationError: Can't reach database server at...
解消フロー(最高管理者権限)
1. Railway Dashboardにログインし、PostgreSQLのステータスを確認。 2. Out of Memory (OOM) の場合は再起動ボタン(Restart)を押下。 3. Prrismaの `connection_limit` を環境変数 `DATABASE_URL` の末尾で `?connection_limit=5` 等に絞る対応を実施。
11. 突然画面全体のレイアウトが崩れ、CSSが当たらないCRITICAL
原因・発生条件
Vercelでの自動デプロイ中、古いキャッシュと新しいハッシュ値の競合
解消フロー(最高管理者権限)
ユーザーに対して「Ctrl + F5(強制スーパーリロード)」または「ブラウザのキャッシュ消去」を案内します。モバイル端末の場合はプライベートブラウズモードでの確認を依頼し、原因を切り分けます。
12. 外部チャット連携(Slack / LINE)の通知が一切飛ばないHIGH
原因・発生条件
APIトークンの失効、またはWebhook URLの変更・削除
出力ログ・シグネチャ例
401 Unauthorized (Invalid Token)
解消フロー(最高管理者権限)
1. `/dashboard/settings/integrations` に遷移。 2. 「テスト送信」ボタンを押下してレスポンスを確認。 3. 送信失敗の場合は、該当プラットフォーム(Slack/LINE Developers等)の管理画面にログイン・再発行し、トークンを貼り直します。
13. CSVエクスポートやJSONバックアップが途中で止まる・失敗するMEDIUM
原因・発生条件
長期間運用によるデータ量肥大化に伴うAPIのメモリ制限(VercelのServerless Function Limit: 50MB/10sec)
出力ログ・シグネチャ例
504 Gateway Timeout
解消フロー(最高管理者権限)
1. APIエンドポイント(`/api/backup`)を `config = { maxDuration: 60 }` などで延長対応(Next.js設定)。 2. それでも無理な場合は、DBツール(pgAdmin等)から直接 `dump` コマンドでエクスポートし、ユーザーへ強制的にお渡しします。
14. 特定のブラウザ(古いSafari等)でインサイトグラフが表示されないLOW
原因・発生条件
RechartsライブラリにおけるResizeObserverの未サポート
解消フロー(最高管理者権限)
Google ChromeまたはMicrosoft Edgeの最新版での利用を推奨するアナウンスを行います。
15. 「見積書の承認(電子サイン)」機能がエラーになるHIGH
原因・発生条件
セキュアドキュメントキーの生成ロジックの不整合
解消フロー(最高管理者権限)
対象の見積書IDに紐づく署名トークンがDB上で生成されていない可能性があります。該当の見積書を「一度下書きに戻す」し、再度「承認依頼(送付)」を実行し直すようユーザーに案内します。
16. FBデータ(全銀協フォーマット)出力時に銀行からフォーマットエラーで弾かれるMEDIUM
原因・発生条件
振込先の「半角カタカナ」名義に、許容外の不正な全角スペースや記号が含まれている
解消フロー(最高管理者権限)
取引先マスタ(`/dashboard/vendors`)の「振込先口座名義」を確認。全角スペースを半角へ、株式会社を「カ)」にキッチリ置換してから再度FBデータを出力させます。
17. 月次インサイトの「売上」と、会計連携の「売上高」に差異があるMEDIUM
原因・発生条件
インサイトは「見積/受注ベース」、会計システムは「請求/入金ベース」での集計基準のズレ
解消フロー(最高管理者権限)
これは不具合ではなく、管理会計(フロント)と財務会計(バック)の違いです。一般ユーザーガイドの「よくある質問」にも記載していますが、ユーザーへは「インサイトは経営の速報値」として説明してください。
18. インボイス照合機能で、正しい登録番号なのに「無効」となるLOW
原因・発生条件
国税庁の適格請求書発行事業者公表サイトAPIの一時的な不具合
解消フロー(最高管理者権限)
数時間待ってから再度AI読み込みを行うか、国税庁のサイト(手動)で確認し、「T+13桁」を目視で正しいと判断できればそのまま保存・承認を進めて問題ありません。
【全業種共通】全銀FBフォーマットの実データ出力HIGH
原因・発生条件
支払管理画面(/dashboard/payments)から「FBデータ出力」を実行すると、Shift_JISエンコーディングの120バイト固定長レコードファイルがダウンロードされます。
出力ログ・シグネチャ例
API: POST /api/payments/fb { paymentIds: string[], transferDate?: string }
解消フロー(最高管理者権限)
【使い方】 1. 支払管理画面で振込対象の支払データを選択します。 2. 「FBデータ出力」ボタンを押下します。 3. 全銀協規定フォーマット(ヘッダー:1 / データ:2 / トレーラ:8 / エンド:9)の.txtファイルがダウンロードされます。 4. 取引先マスタの「銀行コード」「支店コード」「口座番号」「口座名義(カナ)」が正確であることを確認してください。 【注意】口座名義は自動的に半角カナ変換されますが、全角スペースや特殊記号が入っていると銀行側でフォーマットエラーになる可能性があります。株式会社は「カ)」、有限会社は「ユ)」と省略してください。
【建設業モード】出来高査定フローと未成工事支出金の自動仕訳HIGH
原因・発生条件
工事台帳(案件)の詳細画面に、建設業モード時のみ表示される専用パネルです。出来高査定の登録・承認により、自動的に建設業特有の仕訳が生成されます。
出力ログ・シグネチャ例
API: POST /api/projects/{id}/progress { progressRate, assessedAmount } または { action: 'approve', recordId }
解消フロー(最高管理者権限)
【使い方】 1. サイドバーの Display Mode を「建設業モード」に切り替えます。 2. 案件一覧から対象の工事案件を開きます。 3. 「建設業専用: 出来高査定・自動仕訳」パネルが表示されます。 4. 進捗率(%)と今回査定金額(円)を入力し、「出来高登録」を押下します。 5. 登録されたレコードの「承認」ボタンを押すと以下の仕訳が自動生成されます。 【自動生成される仕訳】 ■ 通常: 借方「未成工事支出金」 / 貸方「工事未払金」 ■ 進捗率100%時: 上記に加えて - 借方「完成工事原価」 / 貸方「未成工事支出金」(原価振替) - 借方「工事未払金」 / 貸方「完成工事未収入金」(収入計上)
【不動産業モード】仲介手数料計算(宅建業法 第46条)HIGH
原因・発生条件
不動産業モード時に案件詳細画面に表示される専用パネルです。取引金額から「宅地建物取引業法」に基づく法定上限の仲介手数料を自動計算し、請求書と仕訳をワンクリックで生成できます。
出力ログ・シグネチャ例
API: GET /api/invoices/brokerage?amount=30000000 → { fee, feeWithTax, breakdown } API: POST /api/invoices/brokerage { projectId, contractAmount }
解消フロー(最高管理者権限)
【使い方】 1. サイドバーの Display Mode を「不動産業モード」に切り替えます。 2. 対象物件(案件)を開きます。 3. 「不動産業専用: 仲介手数料計算」パネルで「仲介手数料を計算」をクリック。 4. 法定上限額が自動表示されます。「請求書と仕訳を自動生成」を押すと以下が作成されます。 【計算式(速算式)】 ■ 200万円以下の部分: 取引金額 × 5% ■ 200万円超~400万円以下: 取引金額 × 4% + 2万円 ■ 400万円超: 取引金額 × 3% + 6万円 【自動生成される仕訳】 ■ 借方「売掛金」 / 貸方「仲介手数料売上」 ■ 借方「売掛金」 / 貸方「仮受消費税」
【IT・開発業モード】サブスク課金・ソフトウェア資産化MEDIUM
原因・発生条件
IT・開発業モード時に案件詳細画面に表示される専用パネルです。SaaS・準委任等の定期請求の自動生成と、研究開発費/ソフトウェア仮勘定の会計判定を行います。
出力ログ・シグネチャ例
API: POST /api/contracts/recurring { action: 'generate_recurring', projectId, monthlyAmount } API: POST /api/contracts/recurring { action: 'capitalize_software', projectId, amount, phase: 'research'|'development'|'complete' }
解消フロー(最高管理者権限)
【サブスク課金の使い方】 1. Display Mode を「IT・開発業モード」に切り替えます。 2. 対象案件を開き、「月次サブスク請求を自動生成」をクリック。 3. 契約金額÷12でMRRが自動算出され、仕訳が生成されます。 【ソフトウェア資産化の判定ロジック】 ■ 研究段階 (research): 倉方「研究開発費」(即時費用計上) ■ 開発段階 (development): 倉方「ソフトウェア仮勘定」(資産計上) ■ 完成時 (complete): 倉方「ソフトウェア」 / 貸方「ソフトウェア仮勘定」(無形固定資産へ振替)
【製造業モード】個別原価計算(Job-Order Costing)と仕掛品管理MEDIUM
原因・発生条件
製造業モード時に案件詳細画面に表示されます。BOM(部品構成)の消費に基づき、「材料費・労務費・経費」を仕掛品に投入し、製造完了時に製品へ振り替える一連の会計フローを実行できます。
出力ログ・シグネチャ例
API: POST /api/costs/manufacturing { action: 'charge_wip'|'complete_product'|'sell_product', projectId, ... }
解消フロー(最高管理者権限)
【使い方】 1. Display Mode を「製造業モード」に切り替えます。 2. 製造指図(案件)を開きます。 3. 「材料費 → 仕掛品」「労務費 → 仕掛品」「経費 → 仕掛品」の各ボタンで原価要素を投入します。 4. 製品が完成したら「製品完成(仕掛品→製品振替)」を押下します。 【自動生成される仕訳の流れ】 ■ 原価投入時: 借方「仕掛品」 / 貸方「材料 or 賃金 or 製造間接費」 ■ 製品完成時: 借方「製品」 / 貸方「仕掛品」 ■ 販売時: 借方「売上原価」 / 貸方「製品」
【医療法人モード】保険診療(非課税)と自由診療(課税)の売上区分分離MEDIUM
原因・発生条件
医療法人モード時に案件詳細画面に表示されます。消費税法第6条に基づき、保険診療収入を非課税売上として自動的に分離し、自由診療には10%の消費税を適用します。
出力ログ・シグネチャ例
API: POST /api/invoices/medical { action: 'record_revenue', projectId, insuranceAmount, selfPayAmount }
解消フロー(最高管理者権限)
【使い方】 1. Display Mode を「医療法人モード」に切り替えます。 2. 対象の医療案件を開きます。 3. 「保険診療 ¥500,000(非課税)」「自由診療」「混合記帳」のいずれかを押すと仕訳が生成されます。 【自動生成される仕訳】 ■ 保険診療: 借方「社会保険診療報酬基金」 / 貸方「保険診療収入(非課税)」 ■ 自由診療: 借方「売掛金」 / 貸方「自由診療収入(課税)」 ■ 消費税: 借方「売掛金」 / 貸方「仮受消費税」 【非課税売上割合】 診療所全体の「非課税売上割合」が自動算出され、確定申告時の課税売上割合計算に活用できます。
【飲食・レストラン業モード】日次売上・決済手数料・廃棄損処理MEDIUM
原因・発生条件
飲食業モード時に案件(店舗)詳細画面に表示されます。日次のレジ売上集計と、クレジット決済に伴う手数料の天引き仕訳、そして食材廃棄損の計上をワンクリックで実行できます。
出力ログ・シグネチャ例
API: POST /api/sales/daily { action: 'record_daily_sales', projectId, cashSales, creditSales } API: POST /api/sales/daily { action: 'record_waste', projectId, wasteAmount, wasteCategory }
解消フロー(最高管理者権限)
【使い方】 1. Display Mode を「飲食・レストラン業モード」に切り替えます。 2. 店舗(案件)を開きます。 3. 「日次売上記帳」ボタンを押くと以下が自動計算・仕訳生成されます。 【自動生成される仕訳】 ■ 現金売上: 借方「現金」 / 貸方「売上高」 ■ 現金売上消費税: 借方「現金」 / 貸方「仮受消費税」 (軽減税率8%と標準10%を自動按分) ■ クレジット売上: 借方「クレジット売掛金」 / 貸方「売上高」 ■ 決済手数料: 借方「支払手数料」 / 貸方「クレジット売掛金」(デフォルト3.25%) 【廃棄損(Food Loss)の計上】 APIで借方「廃棄損」 / 貸方「商品」の仕訳が生成され、原価アイテムとしても記録されます。
【セキュリティ】マルチテナント(RLS)によるデータ分離の仕組みCRITICAL
原因・発生条件
PostgreSQLのRow-Level Security (RLS) を全主要テーブルに適用し、アプリケーションコードにバグがあっても、他テナント(他社)のデータが漏洩しない堅牢なセキュリティ基盤です。
出力ログ・シグネチャ例
SQL: SET app.current_org_id = 'org_xxxx'; -- セッションごとに自動設定される Prisma拡張: import { withRLS } from '@/lib/rls'; const rlsPrisma = withRLS(prisma, orgId);
解消フロー(最高管理者権限)
【仕組み】 1. `prisma/rls_policies.sql` にRLSポリシーが定義されています。 2. 各テーブル (Project, Vendor, Contract, User, Order, Invoice, JournalEntry, ProgressRecord, CostItem, PaymentRequest) に `ALTER TABLE ... ENABLE ROW LEVEL SECURITY` が適用され、`orgId` ベースのポリシーが設定されています。 3. Prisma Client拡張 (`src/lib/rls.ts`) がセッション変数 (`app.current_org_id`) を動的に注入します。 【運用上の注意】 ■ RLSポリシーを本番環境に適用する場合は、必ずステージング環境で先にテストしてください。 ■ `isSuperAdmin = true` のユーザーはRLSの制約から除外され、全テナントのデータを閲覧できます。 ■ マイグレーション実行前に、必ずDBダンプを取得してください。 ■ PrismaのbypassRLSロールを使ったマイグレーション専用接続を別途設定してください。