iflytek/astron-agent · error · TypeError

Invalid attempt to destructure non-iterable instance. In…

Error message

Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.

What it means

Babel-compiled _slicedToArray helper TypeError: the code destructured a value (e.g. via C(e,2)) that is neither an array nor iterable — it lacks [Symbol.iterator]. In this player bundle it typically means an API that was expected to return an array/tuple (e.g. a response or state pair) returned null/undefined or an object.

Solutions

  1. Log the destructured value to find which API returned non-iterable data
  2. Default-guard the value (e.g. x || []) before destructuring
  3. Check SDK response shape assumptions against the actual server payload
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at console/frontend/src/utils/avatar-sdk-web_3.1.2.1002/xrtc-player-BJTnVhG9.js:91 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of iflytek/astron-agent@5e758547a8 (2026-09-12). Data as JSON: /api/errors/e953d188cc0c2783. Report an issue: GitHub.

Appendix: source

Thrown at console/frontend/src/utils/avatar-sdk-web_3.1.2.1002/xrtc-player-BJTnVhG9.js:91

            !(r = (s = a.next()).done) &&
            (i.push(s.value), !t || i.length !== t);
            r = !0
          );
        } catch (e) {
          ((n = !0), (o = e));
        } finally {
          try {
            r || null == a.return || a.return();
          } finally {
            if (n) throw o;
          }
        }
        return i;
      }
    })(e, t) ||
    E(e, t) ||
    (function () {
      throw new TypeError(
        'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
      );
    })()
  );
}
function I(e, t, i, r, n, o, s) {
  try {
    var a = e[o](s),
      c = a.value;
  } catch (e) {
    return void i(e);
  }
  a.done ? t(c) : Promise.resolve(c).then(r, n);
}
function T(e) {
  return function () {
    var t = this,
      i = arguments;

View on GitHub (pinned to 5e758547a8)