| Previous | Next |
| RTC_E_PORT_MAPPING_FAILED | RTC_E_SECURITY_LEVEL_NOT_DEFINED |
RTC_E_SECURITY_LEVEL_NOT_COMPATIBLE
What the RTC value marks: RTC_E_SECURITY_LEVEL_NOT_COMPATIBLE
When RTC returns this result, the relevant contract is applying client policy, authorized domains, transport requirements, and negotiated media security levels, and it says that local and remote media security requirements have no compatible negotiated level.
This result carries 0x80EE0047 in the RTC interface facility 0xEE; store the result value at the first RTC callback or method boundary, before retry logic replaces it with a broader timeout or connection message.
Collect enough state to compare required/maximum levels per media type and the peer’s advertised capabilities; the result evidence should demonstrate why this is negotiation incompatibility, not absence of a local security setting.
Protocol and object state
| RTC area | RTC policy and media-security |
|---|---|
| Objects to correlate | enabled profile, policy source, authorized domain, media type, local and remote security level |
| Condition to prove | local and remote media security requirements have no compatible negotiated level |
| Safe corrective direction | use a mutually supported level that still satisfies policy or fail the media session explicitly |
Interpreting this result requires both of these facts: Policy refusal is distinct from transport failure: the requested operation may be technically possible but prohibited for the current profile or platform; also, the result branch assumes that Media security must be compatible for each participating endpoint and should not be silently downgraded after negotiation begins.
Evidence that separates the cause
- Code-specific proof: compare required/maximum levels per media type and the peer’s advertised capabilities.
- Identity and target: requested media security level.
- State at production: peer capability result.
- Timing and ordering: transport selected for signaling.
Related RTC results
RTC_E_POLICY_NOT_ALLOW | effective RTC policy explicitly prohibits the requested action |
|---|---|
RTC_E_SECURITY_LEVEL_NOT_SUPPORTED_BY_PARTICIPANT | a participant cannot support the security level selected for the session |
RTC_E_UDP_NOT_SUPPORTED | the requested feature or profile combination is incompatible with at least one server using UDP transport |
A safe diagnostic sequence
- Start from
0x80EE0047, then find the method/event pair that first exposed it. - To verify this, compare required/maximum levels per media type and the peer’s advertised capabilities.
- Keep the analysis at the right boundary: this is negotiation incompatibility, not absence of a local security setting.
- After you use a mutually supported level that still satisfies policy or fail the media session explicitly, repeat the smallest reproducer rather than restarting the entire application environment.
How to handle the result
The appropriate response to it is not a blanket reconnect. Instead, use a mutually supported level that still satisfies policy or fail the media session explicitly, while preserving ownership of cleanup and any bounded retry.
Example: One endpoint requires protected media while the peer offers only an unprotected mode.
Actions that do not address this condition
- Do not bypass policy by editing generated profile XML in memory.
- Do not downgrade security without an explicit product policy and user-visible result.
Technical references
Looking for a different code? Search another status or error code.