お世話になります。
下記の現象が発生しており、対応に苦慮しております。
現象:520エラーで更新が失敗する。
code:“CB_IL02” message:“不正なリクエストです。”
発生タイミング:APIトークンを利用してレコードを更新するとき
条件:更新対象レコードの添付ファイル項目にファイルが添付されていること
更新対象レコードの添付ファイル項目に添付がなければ現象は発生しません。
また、更新対象項目はいずれも添付ファイル項目とは無関係です。
添付ファイル項目にファイルが添付されている場合、増減がなくとも項目は記載しなければならないのでしょうか。
よろしくお願いいたします。
こういう時には上手くいってないコードを載せてもらうと、解決が早いです。ただ、今回はそれが無くても回避策がありそうです。
kintoneのレコード更新APIは必要なフィールドだけ指定すれば良い(でないと、その前に必ず取得が必要で面倒ですよね)ので、今回のケースですと言われている通り添付ファイルフィールドの値を指定しなければ良いと思います。
ちなみに、切り分けから恐らく添付ファイル部分の記述が仕様にあってないのだと思います。
ご確認ありがとうございます。また、私の説明が至らず、誤解を招いてしまっているようです。申し訳ありません。
具体的に記載します。
前提
レコードの項目に 数値1、数値2、添付ファイル1がある
行いたい操作
数値1と数値2に対するREST APIでの値の更新
エラーになる処理
レコードの添付ファイル1に画像ファイルが添付されている場合に、数値1と数値2をREST APIで更新する
エラーは質問時に記載しましたエラーの内容です。
このときの認証はAPIトークンで行っています。
リクエスト内には、数値1と数値2に対する値の指定を記載しています。
添付ファイル項目に関わる記述はありません。
また、更新時に指定している更新対象項目の値が同じ状態で、エラーになるときと、ならないときがあります。
エラーにならない更新については、下記を確認しています。
・更新対象レコードの添付ファイル項目に添付されているデータがCSVの時
・更新対象レコードの添付ファイル項目に画像が添付されている状態で、添付ファイル項目を空にする指定を追加した時
同じリクエストを投げて、データ状態によってはエラーにならず、更新できる場合もあるということで、
リクエストの記載自体に大きな問題はないものとして考えています。
なにか思い当たる情報がありましたら、ご教授いただければ幸いです。
以上、よろしくお願いいたします。
kintoneでトラブルシュートしようとする際には、自分はサッとあてがつかない時にはそれぞれの要素のバランス見ながら考えて行きますが、ここまでの内容からですと、2と3が原因で1、2、3のいずれかを修正する必要が出てきそうに想像します。
- コードが占める部分
- アプリの設定が占める部分(アクセス権やフィールドの必須/重複禁止設定)
- データが占める部分(想定してなかったデータの入れ方をしてしまっている等)
- その他の部分(ネットワーク等)
成功/失敗ケースがあるとのことですので、2、3の括弧内の内容を確認されると共に、リクエストボディを確認して、成功/失敗の傾向を照らし合わせるのが良いかと思います。
また、まだ確認されてなさそうなので、エラー時のレスポンスにerrorsオブジェクト入ってると思いますので、その内容を確認しましょう。中身がある時には直接的な原因を知ることが出来るので、1番の近道になります。
> リクエストの記載自体に大きな問題はない
とのことですが、エラーで失敗ケースがある事実がある以上リクエストのフォーマットは問題ないかも知れませんが、リクエスト前の分岐やリクエスト内容の生成等コードの問題は捨て切れないですし、問題解決・事象回避のためにコードの修正を要する可能性が残ります。ですので、解決を速くするたにやはりスニペットは記載頂くようにしてもらうと良いと思います(条件の詳細記述の数倍の情報量になることが多いです)。例えば、この時点で記述が分かってれば、先述のerrorsオブジェクトの確認・出力方法をお伝えできたとかですね。