Explain an empty callback into a constructing EraVM contract

A deployed native EraVM contract can behave differently while its constructor is running. A registry called during construction may fail to call a normal getter back on the new address.

Trace the callback while construction is in progress

Follow the constructor’s external call to B and the normal call back into A. EraVM marks the account code hash as constructing and routes a nonconstructor call to default-account behavior instead of running ordinary entrypoints of A.

constructor of A → calls B → B calls back into A
A still has the constructing code-hash marker

If B expects a typed return value, an empty callback response can fail ABI decoding. Reproduce the same getter call after successful deployment: a correct result then points to the construction context as the relevant difference.

Move required information into the registration call

Pass validated initialization information directly to B, or register after A is ready, when the design permits it. Review reentrancy and authorization for the new order. A successful low-level callback with empty data does not establish that a specific getter executed. docs.zksync.io ZKsync documentation