The BE now returns 422 (instead of 200) when the contact hasn't opted in yet — see companion fix in WhatsappCallsController#render_permission_request. Detect that shape in the catch block and surface it as a normal response so the existing banner branch in ConversationHeader.vue keeps working without falling into the error toast path.