そのエラーは、ユーザーAがレコードの編集開始をして保存する前に誰か(ユーザーAを含む)がレコードの中身を書き換えてしまった場合に起こります。
コードを拝見する限り、コードは関係ないと思われます。他に考えられる原因として、
①他のJavaScriptカスタマイズでそのアプリのレコードを更新(PUT)している
②edit.submit.successのイベントでカスタマイズJavaScirptのエラーが発生した場合、レコードは保存されるもののその後の画面推移がされず、もう一度保存しようとしてこのエラーが発生する
③プラグインに問題がある(「吹き出しプラグイン」というもので同様のことがあった例が過去にありました。特にフィールドのフォーム設定を変えた後にプラグインの設定画面を開かないでいると、プラグインの設定は古いフォーム設定のままになるので問題が起こりやすいです)
④レコードの編集中に別のユーザーが編集して保存している
⑤ユーザーAがレコードの詳細画面を開いたまましばらく放置し、その間にユーザーBがそのレコードを編集して保存→ユーザーAが「開いたまま放置していたため、ユーザーBが編集する前の古いレコード」から編集開始して保存する際にエラー
当社で一番多かったのがこのパターンでした。対策として導入したコードを添付しておきます。
(() => {
'use strict';
kintone.events.on('app.record.edit.show', (event) => {
let appId = event.appId, recordId = event.recordId;
let getRecord = {
app: appId,
id: recordId
};
setTimeout(() => {
kintone.api(kintone.api.url('/k/v1/record', true), 'GET', getRecord, (resp) => {
if (resp.record['$revision'].value === record['$revision'].value) return;
if (confirm('現在編集しようとしているレコードは最新ではありませんページを再読み込みします')) location.reload();
}, (error) => {
console.error(error);
});
}, 1000);
return event;
});
})();