Ошибка: Exit code 9 — Cell underflow
Причина и решение ошибки exit code 9 (cell underflow) при чтении slice/cell в TON.
Exit code 9 — Cell underflow
Compute phase: из slice прочитали больше бит или ссылок, чем в нём осталось. Почти всегда — рассинхрон layout при parse сообщения или storage.
Причина
load_uint(32)/loadRef(), а в cell этих данных нет;- другой контракт шлёт другой TL-B layout, чем ты парсишь;
- забыли
skip_bits/ opcode перед полями; - прочитали ref как данные или наоборот.
Решение
Как избежать в будущем
Фиксируй TL-B / message-структуры с обеих сторон. Перед ручным load_* проверяй slice_bits() / slice_refs(). В Tact предпочитай typed message, а не slice.
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация