#1600·reactotron

Timeline command components crash on unexpected payload shapes

Author: joshuayoesCreated Mar 25, 2026Updated Mar 25, 2026

Several timeline command components assume specific payload shapes and will throw if the data doesn't match. An error boundary was added in #1598 to prevent these from crashing the app, but the components themselves should add defensive guards.

Vulnerable components:

  • AsyncStorageMutationCommandpayload.data.key accessed without null check
  • ApiResponseCommandpayload.request and payload.response destructured without null checks
  • StateValuesChangeCommand — insufficient type checking before Object.keys()
  • BenchmarkReportCommandpayload.steps array accessed without validation, crashes on empty array
  • SagaTaskCompleteCommand/Statelesspayload.children.length and .map() without array check

These were safe when the only payload source was the client SDK, but with the MCP server (#1598) there's now a second source of commands that may produce different shapes.