diff --git a/tracker/tracker/CHANGELOG.md b/tracker/tracker/CHANGELOG.md index 7b6b07c26..c291f39d8 100644 --- a/tracker/tracker/CHANGELOG.md +++ b/tracker/tracker/CHANGELOG.md @@ -2,6 +2,7 @@ - drop computing ts digits - drop logLevel for "! node is already observed" message (not critical) +- prevent crashes on buffer upload if msg value is wrapped in proxy via other frameworks ## 16.0.0 diff --git a/tracker/tracker/src/main/app/index.ts b/tracker/tracker/src/main/app/index.ts index e551d5d6b..a016bab2e 100644 --- a/tracker/tracker/src/main/app/index.ts +++ b/tracker/tracker/src/main/app/index.ts @@ -1652,14 +1652,14 @@ export default class App { try { const messagesBatch = buffer.splice(0, endIndex) - // Cast out the proxy object to a regular array. + // Cast out potential proxy objects (produced from vue.js deep reactivity, for example) to a regular array. this.postToWorker(messagesBatch.map((x) => [...x])) res(null) - } catch (e) { + } catch (e) { this._debug('flushBuffer', e) - reject(e) - } + reject(new Error('flushBuffer failed')) + } }) }) }