What does HRESULT 0x80EF012C (RTC_E_STATUS_REDIRECT_MULTIPLE_CHOICES) mean?

 
Previous Next
RTC_E_REGISTRATION_UNREGISTERED RTC_E_STATUS_REDIRECT_MOVED_PERMANENTLY

RTC_E_STATUS_REDIRECT_MULTIPLE_CHOICES

What the RTC value marks: RTC_E_STATUS_REDIRECT_MULTIPLE_CHOICES

This HRESULT is emitted for a defined RTC state rather than an unspecified communications problem; that state is the server returned several possible Contact destinations and did not select one for the client.

This result is represented as 0x80EF012C in the RTC SIP-status facility carrying status 300; record the symbolic name alongside the unsigned hexadecimal value; a decimal exception alone is poor evidence for RTC protocol diagnosis.

A defensible diagnosis of this result requires you to preserve every Contact URI, preference parameter, and expiration before choosing a target; in the case, Multiple Choices requires client selection; it is not a permanent move to one canonical URI.

Protocol and object state

RTC areaSIP redirection processing
Objects to correlateredirect response, Contact list, redirect counter, selected profile, new client transaction
Condition to provethe server returned several possible Contact destinations and did not select one for the client
Safe corrective directionapply application policy to the Contact set, prevent loops, and create a new request only for the chosen destination

a SIP redirect terminates the current client transaction and supplies candidate targets; following one creates a new request and transaction. Permanent, temporary, proxy, and alternative-service responses do not have interchangeable caching or routing semantics.

Evidence that separates the cause

  • Code-specific proof: preserve every Contact URI, preference parameter, and expiration before choosing a target.
  • Identity and target: original and redirected URI.
  • State at production: response status and Contact list.
  • Timing and ordering: redirect hop count.

Related RTC results

Comparison point: 301 Says the resource has moved permanently, whereas 300 offers alternatives without making that claim.

RTC_E_STATUS_REDIRECT_MOVED_PERMANENTLYthe addressed user or resource is permanently available at a new Contact URI
RTC_E_MAX_REDIRECTSthe RTC redirect chain exceeded its configured hop limit
RTC_E_STATUS_REDIRECT_ALTERNATIVE_SERVICEthe original call could not complete but the response describes an alternative service

A safe diagnostic sequence

  1. Collect enough evidence to preserve every Contact URI, preference parameter, and expiration before choosing a target.
  2. Test the competing explanation explicitly, because Multiple Choices requires client selection; it is not a permanent move to one canonical URI.
  3. Apply the targeted fix — apply application policy to the Contact set, prevent loops, and create a new request only for the chosen destination — and validate both protocol completion and object cleanup.

How to handle the result

The owning RTC component should apply application policy to the Contact set, prevent loops, and create a new request only for the chosen destination; it should also settle or cancel its previous operation before callers begin a replacement.

Example: A directory-style SIP service returns office, mobile, and voicemail contacts; the client chooses one according to policy.

Actions that do not address this condition

  • Do not cache every redirect as permanent.
  • Do not follow a Contact target without loop detection, scheme validation, and policy checks.

Technical references


Looking for a different code? Search another status or error code.