Power BIでSmartsheet更新が500エラーになる原因と対策|Web.Contents・ApiVersion・パス問題を解決

Power BI(Power Query)でSmartsheetを取り込めるのに、手動更新やスケジュール更新だけが毎回「Web.Contents … (500) Internal Server Error」で落ちるケースがあります。原因を切り分けやすい順に、現場で効く対策と確認手順をまとめます。

目次

現象を整理:Power BI × Smartsheet の更新だけが失敗する

今回のトラブルは「初回の接続・読み込みは成功するのに、その後の更新が必ず失敗する」という点がポイントです。資格情報(認証情報)やコネクタの有効化が正しいのに落ちる場合、認証ではなく更新処理のタイミングで発生する“呼び出し形式の不整合”や“Power BI側の不具合・設定”が疑わしくなります。

DataSource.Error: Web.Contents failed to get contents from {URL} (500): Internal Server Error

「500」は一般的にサーバー側の内部エラーを示しますが、Power BI(Power Query)が投げるリクエストの形やURLエンコードの失敗、APIバージョン指定などがきっかけで、結果として接続先が500を返すこともあります。つまり、表示は“サーバーエラー”でも、手元のPower BI側で直るパターンが現実にあります。

状況よくある見え方示唆
初回読み込みは成功プレビューや読み込みは完走するネットワーク遮断や完全な権限不足の可能性は低め
更新だけ失敗(手動/スケジュール両方)更新時にのみ500で停止更新処理の呼び出し差分(並列・再評価・API指定・エンコード)が疑わしい
複数のSmartsheetデータセットを使用PBIX内にSmartsheet由来のクエリが多数同時アクセス増・クエリ再評価増で不具合が顕在化しやすい

結論:まず試すべき対策は「Power BI更新」「パスの特殊記号排除」「ApiVersion見直し」

本件で優先順位が高い対策は、次の3つです。手戻りを減らすために、上から順に試すのが効率的です。

優先対策狙い効果が出やすい条件
高Power BI Desktop /(必要ならゲートウェイも)最新版へ更新コネクタや更新処理の不具合(バグ)を潰す以前のバージョンから長く更新していない
高PBIXや保存パス、ファイル名から「%」など特殊記号を排除URL扱い・エンコード不整合を回避ファイル名/フォルダ名に記号や空白が多い
高Smartsheet接続の ApiVersion を 14 または “Auto” にAPIバージョン不整合を回避Mコードに ApiVersion 指定がある / 更新時のみ失敗

Power BIを最新版に更新する(最優先)

Smartsheetコネクタは内部的にWebアクセス(Web.Contents)を使うため、Power BI側の更新処理やコネクタ実装の差分が結果に影響します。初回読み込みが通るのに更新で落ちる場合、まずは「最新版に上げて再現するか」を確認するのが最短ルートです。

Power BI Desktop のバージョン確認と更新のコツ

  • バージョン確認:Power BI Desktop の「ファイル」→「ヘルプ」→「Power BI Desktop について」(表記は環境で多少異なります)
  • 更新:Microsoft Store版ならStoreから更新、ダウンロード版(インストーラー)なら公式配布版を入れ替え
  • 更新後に必ず再起動:Power Queryのエンジンが更新されるため、起動し直してから検証

また、Power BIサービス側のスケジュール更新も失敗する場合は、Desktopだけでなく関連コンポーネントにも注意します。

コンポーネント更新が必要になりやすいケースチェックポイント
Power BI Desktop手動更新(Desktop)も失敗するまずここを最新版へ
オンプレミス データ ゲートウェイ(通常Smartsheet単体では不要だが)プロキシ配下や社内経由でWeb接続を制御している企業ネットワーク特有の経路があるなら更新対象
Power BI Service のデータセット設定Desktopでは通るのにService更新だけ落ちる資格情報の再設定・接続方式の整合を再確認

ポイント:500エラーが毎回出る場合でも、クライアント更新だけで解消する例があります。特に「特定の月のDesktopで発生し、その後の更新で修正された」系の不具合は珍しくありません。

PBIXの保存パス・ファイル名から特殊記号を排除する

意外に見落とされがちなのが、PBIXファイル名や保存先フォルダ名に含まれる特殊記号です。たとえば%(パーセント)はURLエンコードや内部処理で特別な意味を持ちやすく、コネクタの更新処理で「想定外のURL」になった結果、Web.Contentsが失敗することがあります。

特に、次のような環境では発生しやすくなります。

  • OneDrive/SharePoint同期フォルダ配下で運用していて、ローカルパスとURL表現が混ざりやすい
  • フォルダ名にプロジェクト記号や日付記号、括弧、スペースを多用している
  • PBIXをメール添付などで受け渡しし、保存先が毎回変わる

推奨する命名ルール(運用で事故を減らす)

Power BIに限らず、BIファイルは「人が読める」より「機械が安全に扱える」を優先すると、更新系トラブルが減ります。

項目避けたい例推奨例理由
PBIXファイル名Sales%Report(確定版).pbixsales_report_v1.pbix特殊記号や括弧は内部処理でエスケープが絡みやすい
保存フォルダC:\Work\BI\%案件\C:\Work\BI\project_a\% はURL/エンコード関連のトラブル要因になりやすい
推奨文字(記号多用)半角英数字、ハイフン(-)、アンダースコア(_)多くのシステムで安全に扱える

実施手順(やることはシンプル)

  1. PBIXを閉じる
  2. PBIXファイル名から「%」などの特殊記号を取り除く
  3. 保存先フォルダ名も同様に見直し、短いパス(例:C:\Work\PowerBI\)へ移動
  4. PBIXを開き直し、手動更新を実行

これで改善した場合、更新時にだけ参照される内部パス(キャッシュや一時ファイル)でエンコードが崩れていた可能性が高いです。

Smartsheet接続の ApiVersion を見直す(14 / “Auto”)

Power Query(M言語)でSmartsheetに接続している場合、コネクタ呼び出しのオプションとしてApiVersionが指定されていることがあります。特定のApiVersion(例:15)で更新時に不安定になり、500エラーにつながるケースがあるため、ApiVersionを14に下げる、もしくは“Auto”で自動選択に任せるのが有効です。

ApiVersionの指定がどこにあるかはPBIXによって異なりますが、典型的にはPower Queryの「ソース」付近にあります。

ApiVersionを変更する場所

  1. Power BI Desktop →「データの変換(Transform data)」でPower Query エディターを開く
  2. 対象のSmartsheetクエリを選択
  3. 「詳細エディター(Advanced Editor)」を開く
  4. ソース(Source)ステップ付近に ApiVersion の指定がないか探す

Mコードの修正例(イメージ)

コネクタ関数名(Smartsheet.XXXX)は環境やクエリ生成方法で異なることがありますが、「オプションのレコード」にApiVersionが入っている点は共通しやすいです。

// 更新でNGになりやすい例(ApiVersionが固定で高め)
let
    Source = Smartsheet.XXXX([ApiVersion = 15]),
    ...
in
    ...
// 推奨:ひとつ下のバージョンに落とす
let
    Source = Smartsheet.XXXX([ApiVersion = 14]),
    ...
in
    ...
// 推奨:自動選択に任せる(文字列指定)
let
    Source = Smartsheet.XXXX([ApiVersion = "Auto"]),
    ...
in
    ...

注意点:

  • 14は数値、“Auto”は文字列です(ダブルクォーテーションが必要)
  • オプションが複数ある場合、ApiVersionだけを変更し、他のパラメーターは触りすぎない方が切り分けしやすいです
  • 変更後は「閉じて適用(Close & Apply)」を実行し、手動更新で再テストします

更新が通るようになったら、次はPower BIサービスへ発行(Publish)し、サービス側の更新(手動/スケジュール)でも同じ結果になるか確認しましょう。

切り分けを早くする:Desktop更新 → Service更新 → スケジュール更新の順に確認

同じ「更新失敗」でも、どの環境で落ちるかで原因の当たりが変わります。最短で原因に寄せるために、テストの順番を固定するのがおすすめです。

テストやること見るべきポイント示唆
Desktop(手動更新)Power BI Desktopで「更新」同じ500が即出るかここで再現するならPBIX/Mコード/ローカル環境が主因
Service(手動更新)発行後、データセットを手動更新資格情報設定や接続方式の差が出ないかServiceだけで落ちるなら資格情報/権限/サービス側処理が主因
Service(スケジュール更新)スケジュール更新を設定して実行時間帯・並列・頻度で差が出るか負荷・同時実行・一時的エラー要因も視野に

複数Smartsheetクエリがあるときの“更新失敗”を減らす工夫

PBIX内で複数のSmartsheetデータセット(シート/レポート/ワークスペースなど)を参照している場合、更新時にAPI呼び出しが増え、問題が顕在化しやすくなります。根本解決(アップデートやApiVersion見直し)を優先しつつ、運用面で再発を減らす工夫も入れておくと安定します。

並列読み込みを抑える(同時アクセスが疑わしいとき)

Smartsheet側が一時的に不安定になったり、同時アクセスが多いと失敗しやすい環境では、Power BIの並列読み込み設定を見直すと改善することがあります。

  • Power BI Desktop →「ファイル」→「オプションと設定」→「オプション」→「データの読み込み」
  • 「テーブルの並列読み込み(並列ロード)」に関する設定があれば、一度オフにして検証

並列を抑えると更新時間は伸びる傾向がありますが、「毎回落ちる」状態から「更新が完走する」状態へ持っていけることがあります。

同じSmartsheetデータを“参照”で使い回し、呼び出し回数を減らす

Power Queryは、クエリ設計によっては同じデータを複数回評価(再取得)することがあります。特に、同じSmartsheetソースを複数クエリが個別に取りに行っている場合は、次のように整理すると安定しやすくなります。

  • Smartsheetから取得する“元データ用クエリ(ステージング)”を1つ作る
  • ステージングは「読み込みを有効にしない(Enable loadをオフ)」にして、データモデルには載せない
  • 以降はステージングを「参照(Reference)」して派生テーブルを作る

これにより、更新時の外部呼び出しを最小化しやすくなります(ただし、設計や依存関係によって挙動は変わるため、変更後は必ず更新テストをしてください)。

それでも解決しない場合に試す追加チェック

ここまでの「Power BI更新」「パス特殊記号排除」「ApiVersion見直し」をやっても改善しない場合、次の追加チェックを上から順に試すと、原因が絞れます。

チェック項目手順狙い
Power BIの資格情報をいったんクリアして再認証「ファイル」→「オプションと設定」→「データ ソース設定」→対象を選んで権限クリア→再接続トークン更新の不整合、古い認証状態をリセット
データ キャッシュのクリア「オプション」→「データの読み込み」周辺のキャッシュ削除(表記は環境依存)更新時に参照されるキャッシュが壊れている可能性を排除
対象クエリを単体で更新できるか一時的に他のクエリの読み込みをオフにして更新どのSmartsheetクエリで落ちるか特定
取得対象の列・行を減らしてテスト不要な列を早めに削る、フィルターを早めにかける更新時の負荷・サイズ起因の失敗を切り分け
別のPBIXで再現するか新規PBIXを作り、同じSmartsheetを接続して更新ファイル固有(Mコード/依存関係)の問題かを判断

特に「別の新規PBIXだと更新できる」のに「既存PBIXだけ更新できない」場合は、Mコードの依存関係やクエリの再評価、参照の組み方に原因が潜んでいることがあります。段階的にクエリを簡素化し、どのステップから500が出るかを突き止めると、対処が決めやすくなります。

コミュニティやサポートに相談するときに用意する情報

最後の手段として、MicrosoftのPower BI / Fabricコミュニティフォーラム等で相談する場合は、情報が揃っているほど原因特定が早くなります。個人情報や機密(URL、トークン、シート名など)は伏せつつ、次の情報を整理して提示するとスムーズです。

  • Power BI Desktopのバージョン(年月・ビルド)
  • Power BIサービスでの更新か、Desktopでの更新か(両方か)
  • エラー全文(500の行だけでなく、前後のメッセージも)
  • 問題のクエリのMコード(認証情報や具体URLはマスクしてOK)
  • ApiVersion指定の有無(あるなら値:15/14/”Auto”など)
  • PBIXの保存場所とファイル名に特殊記号が含まれていないか
  • Smartsheet側はシート/レポート/ワークスペースのどれを読んでいるか(概念レベルで)
提示すると強い情報なぜ重要かマスクのコツ
Mコード(Source付近)ApiVersionや呼び出し形、再評価ポイントが見えるURL、ID、キー、シート名は伏せる(XXXX置換)
再現手順同じ条件で検証してもらえる「更新ボタン」「Service手動更新」「スケジュール更新」どれで落ちるか明記
発生タイミング(いつから)特定バージョン更新やAPI変更と結びつけられる「○月のアップデート後から」などで十分

最後に:500エラーでも“Power BI側で直せる”ことが多い

Smartsheet連携の更新で出る「Web.Contents の500エラー」は、一見すると相手側の問題に見えます。しかし、初回は成功して更新だけ失敗する場合は、次の3点を見直すことで解消する確率が高いです。

  • Power BI Desktop(必要なら関連コンポーネント)を最新版へ更新する
  • PBIXのファイル名・保存パスから「%」などの特殊記号を排除する
  • MコードのApiVersionを14または”Auto”に変更して更新を再テストする

この順番で潰していくと、最小の手間で復旧しやすく、再発防止にもつながります。更新が通ったら、同じPBIXをPower BIサービスに発行して、手動更新とスケジュール更新でも問題が再現しないことまで確認して完了にしましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次