Common call failure causes
Device calls Mini Program: business server calls WeChat /wxa/business/iot/voip/call fails
Confirm whether the device has passed WeChat review. If not, you cannot call the release Mini Program; you can call the trial Mini Program.
Reference for error codes: WeChat WeChat VoIP calling plugin error codes.
Use the official documentation as the source of truth; its list may be incomplete.
Below are additional codes we have collected.
Backend-returned error codes
| errCode | Description |
|---|---|
| 1 | Invalid roomId |
| 2 | Invalid device deviceId |
| 3 | Invalid voip_id |
| 4 | Invalid voipToken (face-verify mode) |
| 5 | Failed to create WeChat VoIP calling room |
| 7 | Invalid openId |
| 8 | openId not authorized (face-verify mode) |
| 9 | openId not authorized for the device (hardware mode), or not a userId contact (face-verify mode) |
| 12 | Mini Program RTC capability review not completed; temporarily unavailable in the release build |
| 13 | Hardware calls WeChat: voipToken error |
| 14 | WeChat calls hardware: voipToken error |
| 15 | Unpaid / arrears |
| 17 | voipToken does not match modelId |
| 19 | openId does not match the Mini Program appId (the same user has different openIds across Mini Programs) |
| 20 | Invalid openId |
| 22 | Invalid chargeType |
| 23 | Device license expired |
| 24 | Device license not activated |
| 31 | Device not reviewed; cannot call the release build |
| -202 | Developer server did not respond correctly to the callback |
| 61007 | Mini Program authorization issue in server-side mode |
| 10008 | Usually sn_ticket expired |
Does callback errcode != 0 end the call?
No.
As long as the call-initiation API succeeds and WeChat enters the ringing flow, callback responses with errcode != 0 do not directly terminate the call.
Some older WeChat documents state that non-zero errcode means “no ringing and call canceled”. Actual behavior no longer follows that rule.
Why is the stream sometimes correct and sometimes rotated 90° on the device?
Usually one of two reasons:
- During the call the phone may be lying flat, while WeChat assumes the phone is held upright.
- The WeChat client is an older version.