| Previous | Next |
| RTC_E_PROFILE_INVALID_SESSION_PARTY | RTC_E_OPERATION_WITH_TOO_MANY_PARTICIPANTS |
RTC_E_PROFILE_INVALID_SESSION_TYPE
What the RTC value marks: RTC_E_PROFILE_INVALID_SESSION_TYPE
This result is useful only when preserved with its producing phase; in creating or enabling an XML profile that defines user identity, servers, transports, authentication, and supported session types, it denotes the profile contains an invalid session type value or combination.
The machine-readable identity of this result is 0x80EE003D in the RTC interface facility 0xEE; the result identity matters because RTC uses separate facilities for API conditions, SIP final responses, and PINT service statuses.
Before changing configuration for this HRESULT, record the exact value, XML element, allowed enumeration, and related transport/role/session fields; the RTC codes surrounding this result are not equivalent because the field is present, so adding another copy will not fix semantic validation.
Protocol and object boundary
| RTC area | RTC provisioning profile validation boundary |
|---|---|
| Objects to correlate | profile XML, provision/user/server/session elements, registrar and proxy roles, transport and authentication method |
| Condition to prove | the profile contains an invalid session type value or combination |
| Safe corrective direction | replace it with a documented value consistent with the rest of the profile and revalidate from source |
Two RTC rules frame this result: first, CreateProfile validates the provisioning schema and cross-field constraints; a field can be present yet still be unusable with the chosen transport or role; second, for this HRESULT, The enabled profile selected for a call must support both the destination and the requested session type.
Evidence that separates the cause
Do not wait for a generic failure notification to log it; preserve the API call or event producing it together with the RTC object and transaction state visible at that moment.
- Code-specific proof for this HRESULT: record the exact value,
XMLelement, allowed enumeration, and related transport/role/session fields. - Identity and target for this HRESULT: redacted profile
XMLpath/version. - State at production for this HRESULT: user URI and profile key hash.
- Timing and ordering for this HRESULT: server role/address/transport.
For privacy-safe analysis of it, preserve protocol structure rather than payload content; for this HRESULT, authentication values, complete addresses, buddy lists, and bodies should be redacted or hashed under policy.
A safe diagnostic sequence
- Start from
0x80EE003Dand it, then find the method/event pair that first exposed it. - the proof step is to record the exact value,
XMLelement, allowed enumeration, and related transport/role/session fields. - check whether the failure was local before transmission, produced during RTC state validation, or mapped from a remote response.
- keep the analysis at the right boundary: the field is present, so adding another copy will not fix semantic validation.
- after you replace it with a documented value consistent with the rest of the profile and revalidate from source, repeat the smallest reproducer rather than restarting the entire application environment.
Correlate wire data and RTC events for this HRESULT; for this HRESULT, either source alone can misclassify local validation as remote rejection, or a remote status as a local media or profile failure.
How to handle the result
Recovery from it should be narrow: replace it with a documented value consistent with the rest of the profile and revalidate from source; while handling it, do not let a higher layer simultaneously recreate the same session, registration, listener, or profile.
Distinguish local rejection from an operation that may already have reached the server; for this HRESULT, use transaction identifiers and final events before replaying any non-idempotent action.
Example for this HRESULT: An automated profile feed emits an unsupported session type value and CreateProfile rejects the document.
Actions that do not address this condition
- With it, do not insert placeholder values solely to pass schema validation.
- Do not log passwords or provisioning secrets from profile XML.
- Keep it intact through exception and UI layers; a generic parameter or network message is insufficient for diagnosis.
Related RTC results
It should not be grouped with every value from the same facility. It is tied to the condition “the profile contains an invalid session type value or combination”; preserve that producing boundary before choosing recovery; the result table shows nearby alternatives.
RTC_E_LOCAL_PHONE_NEEDED | the selected phone-service operation requires a local telephone number that the profile does not provide |
|---|---|
RTC_E_NO_REALM | the profile or authentication context lacks a realm required to select credentials |
RTC_E_PROFILE_INVALID_SERVER_ROLE | the profile contains an invalid server role value or combination |
Facility equality is not semantic equality; route each contrasted value through its own recovery branch.
Verification after a fix
A regression test for this HRESULT should reproduce “the profile contains an invalid session type value or combination” with the smallest profile, message, session, presence, media, or PINT fixture; for this HRESULT, assert 0x80EE003D, the responsible method/event, and the object state after the result; then, for this HRESULT, change only the decisive precondition and verify that the corrected run leaves no stale transaction or RTC object.
Technical references
- IRTCClientProvisioning::CreateProfile — API or protocol rules used to interpret it.
- IRTCProfile server fields — authoritative context for the boundary.
- Microsoft RTC return constants — definitions relevant when reproducing it.
- SIP and TEL URLs — API or protocol rules used to interpret it.
Looking for a different code? Search another status or error code.
