| Previous | Next |
| RTC_E_PROFILE_NO_SERVER | RTC_E_PROFILE_NO_SERVER_PROTOCOL |
RTC_E_PROFILE_NO_SERVER_ADDRESS
Operational meaning: RTC_E_PROFILE_NO_SERVER_ADDRESS
The operational meaning of this result is tied to creating or enabling an XML profile that defines user identity, servers, transports, authentication, and supported session types: the provisioning profile omits the required server address field.
The machine-readable identity of this result is 0x80EE0035 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.
The first useful check for this HRESULT is to parse the profile with schema-aware diagnostics and identify the owning provision, user, server, or session element; The result must be separated from nearby conditions because a missing field differs from a present field whose value or cross-field combination is invalid.
Verification workflow
- Start from
0x80EE0035and this result, then find the method/event pair that first exposed it. - check whether the failure was local before transmission, produced during RTC state validation, or mapped from a remote response.
- the proof step is to parse the profile with schema-aware diagnostics and identify the owning provision, user, server, or session element.
- keep the analysis at the right boundary: a missing field differs from a present field whose value or cross-field combination is invalid.
- after you supply the authoritative server address value and regenerate the profile rather than inserting a guessed placeholder, repeat the smallest reproducer rather than restarting the entire application environment.
Use RTC event state to interpret the protocol trace for this HRESULT, and use the trace to verify what left or reached the host; for this HRESULT, this two-sided correlation identifies the producing layer.
Protocol and object boundary
| RTC area | RTC provisioning profile validation boundary |
|---|---|
| Condition to prove | the provisioning profile omits the required server address field |
| Objects to correlate | profile XML, provision/user/server/session elements, registrar and proxy roles, transport and authentication method |
| Safe corrective direction | supply the authoritative server address value and regenerate the profile rather than inserting a guessed placeholder |
At the boundary, CreateProfile validates the provisioning schema and cross-field constraints; a field can be present yet still be unusable with the chosen transport or role; separately, this result must be read with the rule that The enabled profile selected for a call must support both the destination and the requested session type.
Signals worth preserving
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: parse the profile with schema-aware diagnostics and identify the owning provision, user, server, or session element.
- Correlation key for this HRESULT: session type and party attributes.
- Protocol or object snapshot for this HRESULT: redacted profile
XMLpath/version. - Last completed transition for this HRESULT: user URI and profile key hash.
- Expected output 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.
Recovery and control flow
The appropriate response to it is not a blanket reconnect. Instead, supply the authoritative server address value and regenerate the profile rather than inserting a guessed placeholder, while preserving ownership of cleanup and any bounded retry.
Before retrying it, classify the previous operation as definitely failed, definitely completed, or remotely uncertain; for this HRESULT, that distinction prevents duplicate dialogs, bindings, transfers, or roaming mutations.
Example for this HRESULT: A provisioning template creates a profile without server address and RTC rejects it before the profile can be enabled.
Actions that do not address this condition
- The following shortcut is unsafe for this HRESULT: do not log passwords or provisioning secrets from profile XML.
- Another non-solution for this HRESULT is to do not insert placeholder values solely to pass schema validation.
- Do not translate it into a broad “connection failed” label before preserving the RTC symbol and producing phase.
Do not confuse it with
It is tied to the condition “the provisioning profile omits the required server address field”; preserve that producing boundary before choosing recovery; for this HRESULT, the neighboring results below require different control-flow decisions.
RTC_E_NO_PROFILE | RTC cannot select an enabled profile suitable for the requested destination and session type |
|---|---|
RTC_E_PROFILE_NO_NAME | the provisioning profile omits the required name field |
RTC_E_PROFILE_SERVER_UNAUTHORIZED | the profile server address falls outside the domains authorized by provisioning policy |
The comparison prevents it from being flattened into a subsystem-wide error bucket with unsafe generic remediation.
Verification after a fix
A regression test for this HRESULT should reproduce “the provisioning profile omits the required server address field” with the smallest profile, message, session, presence, media, or PINT fixture; for this HRESULT, assert 0x80EE0035, 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 — definitions relevant when reproducing it.
- IRTCProfile server fields — API or protocol rules used to interpret it.
- Microsoft RTC return constants — authoritative context for the boundary.
- SIP and TEL URLs — definitions relevant when reproducing it.
Looking for a different code? Search another status or error code.
