Troubleshooting Public Safety and Security and Oracle Radio

Choose a category to find help with Public Safety and Security instances, Radio access, mobile setup, channels, audio, messages, settings, locations, or APIs.

Start with the resource or operation that reports the problem. Preserve the Public Safety and Security instance OCID, work request OCID, request ID, lifecycle state, and customer-visible error before retrying an operation.

For an initial iPhone setup or radio check, return to the quick start and verify sign-in, duty status, connection, active channel, and microphone access. A download QR code isn't an enrollment code, and being signed in doesn't prove that audio is ready.

Choose the category that matches the problem:

Instances and Monitoring

Use this guidance to troubleshoot instance creation, work requests, service restrictions, limits, and observability.

To find an instance in the OCI Console, open the Navigation menu, select Oracle Public Safety and Security, and then under Public Safety and Security, select Instances. For the related work-request details, follow Listing Public Safety and Security Work Requests.

The CLI Rejects an Instance Creation Option

The create command reports an unknown option or a missing required administrator option before submitting a request.

Cause

The command's options don't match the installed Public Safety and Security CLI version.

Remedy

  1. Run oci pss instance create --help to check the installed command's options.
  2. Use --admin-user-id for the initial administrator Identity Domain user OCID, together with --identity-domain-url and --compartment-id. Follow the create example.
  3. If the Public Safety and Security command or option is unavailable, confirm that the installed CLI version supports Public Safety and Security for your release. See CLI setup.

A Public Safety and Security Instance Operation Doesn't Complete

A create, update, move, or delete operation remains in progress or reports a failure.

Cause

The asynchronous workflow is still running, needs attention, or has failed.

Remedy

  1. Get the work request associated with the instance operation.
  2. Review its status, completion percentage, errors, and customer-visible log entries.
    For a canceled operation, the API and CLI status is CANCELED. Monitor the original work request after a cancellation request is accepted.
  3. Verify that the Public Safety and Security instance and work request are in the expected compartment and region.
    After a compartment move is accepted, the instance reports the destination compartment while the work request remains in the source compartment. Select the source compartment when listing requests. After a failed move, get the instance again to check its current compartment and state.
  4. Correct the reported input, policy, or dependency problem before retrying the operation.
  5. Preserve the request ID and work request OCID if the documented corrective action doesn't resolve the problem.

An ACTIVE Instance Reports Restricted Access

The instance is ACTIVE, but lifecycle details report a subscription restriction.

Cause

Public Safety and Security service subscription status and instance lifecycle are separate. Radio channel subscriptions don't remove a service subscription restriction. Access is restricted when a service subscription is suspended, suspension or resume is pending, or termination is pending or complete. Successful sign-in doesn't mean that a subscription restriction has cleared; Radio access can remain blocked.

Remedy

  1. Get the instance details and read lifecycleDetails.
  2. Ask the administrator responsible for the tenancy's subscription to review the reported restriction.
  3. If a resume is pending, get the instance again after the subscription change completes and verify that the restriction message has cleared before retrying the blocked operation.
  4. Preserve the instance OCID, request ID, and restriction message if further assistance is needed. Don't recreate the instance solely because its subscription is restricted.

Instance Creation Rejects the Initial Administrator

The create work request reports that the initial administrator is missing or inactive, or the Identity Domain configuration is invalid.

Cause

The user OCID doesn't identify an active user in the configured Identity Domain, or the Identity Domain URL isn't a valid HTTPS origin.

Remedy

  1. Verify that the initial administrator user OCID belongs to the Identity Domain selected for the Public Safety and Security instance.
  2. Verify that the Identity Domain user exists and is active.
  3. Enter the Identity Domain HTTPS origin only. You can include the default HTTPS port :443, but don't include credentials, a non-default port, a path, a query, or a fragment.
  4. Verify that the required Identity Domain configuration and Public Safety and Security permissions are in place by following the Identity Domain setup procedure.
    Check that the required service policy is in the tenancy's root compartment, even if the instance is in a child compartment.
  5. Create the Public Safety and Security instance again with the corrected values.

A Public Safety and Security Instance Creation Request Reaches the Service Limit

A create request is rejected because the Public Safety and Security instance limit has been reached.

Cause

The tenancy's Public Safety and Security instance usage has reached the applicable regional limit.

Remedy

  1. Verify the tenancy, region, and applicable max-instance-count limit. See service limits.
  2. Review the existing Public Safety and Security instances in that region, including the relevant compartments.
  3. If additional capacity is required, follow the limit-increase guidance. Don't repeat the unchanged create request until capacity is available.

Access to Metrics, Events Rules, or Audit Records Is Denied

You can't query Public Safety and Security metrics, view an Events rule, or read Audit records because access is denied.

Cause

Public Safety and Security instance permissions and Oracle Radio application permissions don't grant access to Monitoring, Events, or Audit resources.

Remedy

  1. Confirm the signed-in user and the compartment containing the metrics, rule, or Audit records you want to view.
  2. Ask your IAM administrator to verify your group membership and the applicable read policy for that compartment.
    Use read metrics for the oci_pss namespace, read cloudevents-rules for Events rule configuration, or read audit-events for Audit records.
  3. If you need to create or change an Events rule rather than view it, request the rule-management and destination permissions described in event access.

An Expected Public Safety and Security Metric Has No Data

A query in the oci_pss namespace doesn't return a data point for an expected Public Safety and Security metric.

Cause

The query can use the wrong compartment, resource, dimensions, statistic, or interval; the selected time range might not include a completed source window; or no qualifying API traffic, connection state, or managed-database observation occurred. Public Safety and Security doesn't publish a zero when an API Gateway or managed-database source window has no valid observation.

Remedy

  1. Verify the compartment, oci_pss namespace, metric name, and resourceId for the active Public Safety and Security instance.
  2. Use the dimensions, statistic, and interval listed in Public Safety and Security metrics.
  3. Choose a time range that includes a completed source interval.
    API Gateway byte metrics use closed one-minute windows, CPUsAllocated_max uses five-minute source observations, and StorageSpaceUsed_max uses hourly source observations.
  4. For request or connection metrics, verify that the relevant operation or connection occurred during the selected time range.

Sign-In, Access, and Administration

Use this guidance to troubleshoot Oracle Radio authorization, administrator recovery, user access, and sign-out.

When reviewing access, follow the security responsibilities and grant only the permissions required for the user's work.

The User Signs In but Oracle Radio Denies Access

Identity Domain sign-in succeeds, but the user can't open an Oracle Radio function or perform an operation.

If controls differ but no access error occurs, check that you are following instructions for your Oracle-provided browser or mobile application. Screen size, permissions, and organization configuration can affect the interface. See application choices.

Cause

Authentication succeeded, but a subscription restriction blocks access, the Radio user isn't enabled, or the user doesn't have the required Radio group or channel permission.

Remedy

  1. Check the instance details for subscription restrictions. If access is restricted, follow the subscription guidance before retrying.
  2. Verify that the Identity Domain user is active.
  3. In Radio, select Users, and verify that the corresponding Radio user is enabled.
  4. Verify that the user belongs to a Radio group with the required permission.
  5. Verify any channel access rules for viewing, joining, transmitting, or sending critical messages.
  6. Have the user sign in again and retry the operation.

Radio Administrator Access Is Lost

The administrator's Identity Domain account is unavailable, your organization has lost domain access, or no authorized Radio administrator remains.

Cause

Identity Domain account credentials and Radio authorization are separate. Updating the Public Safety and Security instance doesn't replace its initial-administrator user OCID.

What to Do

  1. Ask your Identity Domain administrator to confirm that the account exists and is active. Have that administrator restore the account or its sign-in credentials when possible. If domain access is lost, restore it through your organization's Identity Domain administration process first.
  2. If the original account is restored, sign in again and verify Radio access. If another authorized Radio administrator remains, have that administrator review your Radio status and memberships.
    Account recovery doesn't recreate a deleted user or repair damaged Radio access. Radio can't prevent account changes made in the Identity Domain.
  3. If no authorized Radio administrator remains, the account must be replaced, or restored sign-in still doesn't provide administration access, contact Oracle Support before changing instance resources.
    There is no supported customer Console or SDK procedure to transfer the super administrator designation in this release. Creating a different directory user or updating the instance doesn't automatically grant administration. Don't change database records or delete the instance as a recovery workaround.

A Radio Group Can't Be Changed or Deleted

The group's name, status, or permissions are read-only, the Delete group action is absent, or a change returns a conflict.

System groups can't be renamed, disabled, have their permissions changed, or be deleted. Ordinary groups support these changes, including permanent deletion, with the required permission. Removing a member doesn't delete the group.

  1. Check for the System group label. For a system group, manage only permitted membership; don't retry a protected change. See protected access.
  2. For an ordinary group, have an authorized administrator verify your radio.group.manage permission. To permanently remove it, follow the deletion steps. To retain it without granting its permissions, set Status to Disabled and select Save details.
  3. If a change returns HTTP 409, refresh the group's current protection before deciding what to do. If a deletion result is uncertain, refresh the group list; don't interpret NotAuthorizedOrNotFound as proof that the group exists or was deleted.
  4. If removing a member returns super_admin_protected, keep that user in Radio Administrators. Follow administrator handoff to add another administrator without transferring the protected designation.

An Administrator Handoff Could Remove the Last Verified Administrator

The current administrator is preparing to leave the organization, lose Radio access, or leave the Radio Administrators group.

Cause

The replacement administrator hasn't been enabled, assigned, and verified before the current administrator's access is removed.

Remedy

  1. Keep the current administrator enabled and in Radio Administrators during the handoff.
  2. If needed, have your Identity Domain administrator create an active replacement user in the instance's Identity Domain. In Radio, select Users and enable that user's Radio access. See user management.
  3. Add the replacement user to Radio Administrators. See Radio groups.
    The group can contain multiple administrators; membership grants its administrative permissions.
  4. Have the replacement administrator sign in independently and verify that they can manage users and groups on the Users and Groups pages.
  5. Only after verification, change the former administrator's Radio access if required and that user isn't marked Super administrator. Don't remove or disable the last verified administrator.
    Radio rejects disabling the designated super administrator or removing that user's Radio Administrators membership. Adding another administrator doesn't transfer the designation. Routine upgrades with the unchanged designation don't repair access. If the protected account must be replaced, follow recovery guidance.
  6. Follow administrator handoff for the complete procedure.

An Oracle Radio User API Request Fails or Changes the Wrong Memberships

A user request is rejected, or a group update removes memberships that you intended to keep.

The operation uses the wrong user identifier, the caller lacks authorization, or the replacement request omits memberships.

  1. Verify the caller's radio.user.manage permission and supported authentication.
  2. Read details and distinguish the directory user ID from radio.radioUserId.
    Directory lookup and Radio status changes use the directory user ID; group replacement uses the Radio user ID. Enabling Radio access doesn't activate a disabled Identity Domain account.
  3. Before replacing memberships, include every group that should remain.
    Read the current groupIds. An empty array removes all memberships; verify another administrator can manage Radio before removing administrative access.
  4. Distinguish a successful empty result from a failed request.
    HTTP 200 with "users": [] is an empty page; check the filter and continuation value in List Users. An empty groupIds array means no Radio group memberships, not a missing directory account. Don't retry an unchanged successful request as though it failed.
  5. Read the user's state after an uncertain write result, and follow the error guidance before retrying.

Users Are Missing or Can't Be Added to a Channel

Manage members doesn't list an expected user, or adding selected users reports an error.

Cause

The list excludes inactive directory users, users without enabled Radio access, and existing subscribers. Search, pagination, permissions, and request failures can also affect the result.

What to Do

  1. Use Previous and Next to check other result pages. Clear or adjust the search if needed.
    Selections remain checked across pages, but running a new search clears them. Select the intended users again before adding them.
  2. Verify that the Identity Domain account is active and Radio access is enabled. Check whether the user already has a saved subscription.
  3. Ask your administrator to verify the applicable channel permissions, radio.user.manage, and radio.user.subscriptions.manage. See user permissions.
  4. If some additions succeeded before an error, review the refreshed list and retry only the remaining users. Follow add users.
    Successful additions aren't rolled back because a later addition fails. A saved subscription doesn't start a live call.

Oracle Radio Sign-Out Doesn't Complete

You select Sign out but a network or redirect error appears, or you can't confirm that the browser session ended.

The browser session's sign-out flow didn't complete. Closing a tab or ending a channel call doesn't establish that the sign-in session has ended.

  1. Use Sign out in the Radio header and allow the redirects to finish. See the sign-out steps.
    Verify You are signed out. The page stays open until you close it or select Sign in again.
  2. If a network or redirect error prevents completion, record the visible error and time and contact your administrator or support contact.
    Don't include cookies, tokens, or authentication URLs containing sensitive parameters. Don't change the sign-out destination or your organization's Identity Domain application settings to work around the error.
  3. On a shared computer, follow your organization's session-security procedure if sign-out can't be confirmed.

Mobile Enrollment and Sessions

Use this guidance to troubleshoot mobile enrollment, sign-in, registration, and session recovery.

The Oracle Radio Mobile Application Can't Complete Device Registration

The intended user scans a registration QR value and signs in, but the Radio mobile application doesn't complete registration.

Cause

The registration value expired, was already used, or was revoked; the signed-in user doesn't match the intended user; the Radio user isn't enabled; or the application didn't supply a valid advertising ID.

Remedy

  1. In Radio, select Users, and verify that the intended user is enabled.
  2. On the Devices page, create a new registration for the intended user. For an existing device, select Re-register. See re-registration.
  3. Set Expires at to a future date and time, and select Create QR code.
  4. Have the intended user scan the newest QR value and sign in with that user's Identity Domain account.
  5. Verify that the mobile application sends a valid Identity Domain bearer access token and an advertising ID from 1 through 255 characters when it completes registration. Compare the complete flow with mobile enrollment.

Reusable Registration Fails or Creates an Unexpected Device

A reusable code is rejected, or repeated completion creates separate device records.

A reusable grant is bound to its intended user and has an expiry and revocation state; each completion creates a new installation record.

  1. Verify the signed-in user matches the intended enabled Radio user. The grant never replaces that user's bearer token.
  2. Check the grant in Reusable QR codes or the paginated REST registration list. Replace an expired or revoked grant; a consumed one-time grant is not reusable.
  3. If the code was lost, create a new grant and revoke the old reusable grant when appropriate. Listing registrations cannot recover its secret value.
  4. After a lost response, inspect device inventory before repeating completion. The same advertising ID does not deduplicate installations. To retain a device ID after reset, use targeted re-registration.

Android Re-enrollment Is Canceled or Can't Be Prepared

You canceled after confirming Re-enroll in Settings, or the app reports that it can't prepare the device for re-enrollment.

Confirming re-enrollment ends the current signed-in session before the enrollment instructions appear. Canceling doesn't restore that session. Preparation can also fail before enrollment can continue.

  1. If you canceled, sign in again when you want to resume. Don't expect Back to return to the previous authenticated screen.
  2. If preparation failed, retry the re-enrollment action. If the problem persists, contact your administrator with the app version and nonsensitive error text.
  3. To complete re-enrollment, obtain the intended QR code and follow the Android steps.
    Review and confirm the replacement server details before continuing. Don't clear app data as a routine workaround.

iOS Re-enrollment Can't Be Prepared

Oracle Radio reports Could Not Re-enroll, or says that the radio is still disconnecting.

Radio must disconnect its background session before it can prepare replacement enrollment. Re-enrollment also turns off background reception and hardware talk controls.

  1. Keep Oracle Radio open, wait, and try Re-enroll Device again.
  2. If preparation succeeds, scan the intended replacement QR code and sign in again. Follow the iOS steps.
  3. Review background reception, Bluetooth PTT, and the lock-screen Action Button before using them again. Enable the controls you need; Bluetooth pairing is retained.
  4. If the error persists, contact your administrator with the app version and nonsensitive error text.
    Don't clear app data or re-enroll merely to recover from a temporary connection failure. See session recovery.

Identity Domain Sign-In Completes but the Oracle Radio Mobile Application Doesn't Resume

The intended user completes Identity Domain sign-in in the browser, but the browser doesn't return to the Radio mobile application or registration doesn't resume.

Cause

The installed application can't receive the mobile callback managed by Public Safety and Security, the application version doesn't support the registered callback, or the sign-in response doesn't match the application's current authorization request.

Remedy

  1. Verify that the user is using the supported Radio mobile application and a current application version.
  2. In Radio, select Devices, and create a new registration for the intended user. Have the user start sign-in from the same application installation by scanning the new QR code or using its Shareable registration value.
  3. Allow the browser to return to the installed application. Don't enter or replace the callback URI manually.
  4. For a client implementation, compare the request and callback with the OAuth example. Verify the discovered authorization endpoint, supported callback, exact Radio scope, and S256 challenge. Reject a callback with a mismatched state or an error; start a new sign-in attempt instead of exchanging its code.
  5. If the problem continues, record the time and nonsensitive error text. Don't copy the returned callback URI, authorization code, PKCE verifier, access token, refresh token, registration code, or QR value into logs, commands, or support records.

The Identity Domain Rejects the OAuth Token Exchange

Sign-in returns an authorization code, but the token request fails, for example with invalid_grant.

The request can contain a mismatched client or callback, the wrong PKCE verifier, or an expired or already-used authorization code. A callback code and a device-registration grant aren't interchangeable.

  1. Compare the request with the token example.
    POST a form-encoded body to the discovered Identity Domain token endpoint, not the Public Safety and Security service endpoint. Use the public client ID and exact callback from the authorization request, plus the original PKCE verifier. Don't add a client secret or use the S256 challenge as the verifier.
  2. Start a new sign-in attempt if the code was rejected or the exchange result is uncertain.
    Generate fresh state, nonce, and PKCE values for the new attempt. Validate its callback and exchange its code once. Don't keep retrying an old authorization code or weaken the callback/state checks.
  3. For the supported Radio mobile app, let the app handle sign-in and token exchange.
    Command-line, custom-browser, and server authentication contracts are not supported. Do not create another OAuth application, copy a browser CSRF value, or extract mobile tokens or callback codes to bypass that boundary or an app failure. For a callback problem, follow sign-in help.
  4. If the failure continues, give support the time, HTTP status, and nonsensitive error code.
    Exclude tokens, full callback URLs, authorization codes, PKCE verifiers, and registration values. Don't modify Identity Domain applications managed by Public Safety and Security as a workaround.

An Oracle Radio Mobile WebSocket Session Can't Authenticate or Isn't Associated with the Device

A registered Radio mobile application opens the Radio WebSocket connection but can't authenticate or exchange Radio messages, or its device remains offline.

Cause

An omitted, invalid, or expired bearer access token, or a disabled Radio user, can prevent authentication. A malformed, repeated, or unknown supplied X-Oracle-Radio-Device-Id also causes authentication to fail. Omitting the header leaves the connection unbound; it cannot establish device audio readiness. A device ID is not a credential.

Remedy

  1. Verify that the user is active in the Identity Domain and enabled in Radio.
  2. Obtain a valid Identity Domain bearer access token by using the supported mobile OAuth flow.
  3. During the WebSocket HTTP upgrade, send exactly one X-Oracle-Radio-Device-Id header with the ID returned by registration completion. Do not substitute the advertising ID, registration grant ID, or an invented value. After the connection opens, send the bearer access token in AUTH and wait for AUTH_SUCCESS.
  4. If an application reset or reinstallation removed the Radio device ID, follow mobile re-enrollment before reconnecting.

Mobile Sign-in or Session Renewal Fails

The Android or iOS app can't renew access, remains disconnected, or returns to sign-in.

Cause

A connection or temporary service failure can interrupt renewal. The app retains the session and retries these failures. Both Android and iOS return to sign-in when saved refresh credentials are missing, expired, or definitively rejected.

What to Do

  1. Restore the network connection and allow the app to retry. Communication might remain unavailable until renewal succeeds.
  2. If the app returns to sign-in, or reports that its saved refresh credentials are unavailable or rejected, sign in again as the intended user.
  3. If it remains stuck or reports missing saved credentials, contact your administrator with the app version, time, and nonsensitive error text.
    Don't clear app data, scan replacement QR codes, or copy tokens as a routine refresh workaround. Use re-enrollment only when registration or configuration must be restored. See session recovery.

An Oracle Radio Device Appears Offline

The Devices page shows a registered application installation as offline.

Cause

The application isn't active, its network connection or authentication failed, or Radio hasn't received a recent authenticated heartbeat. Online state is best effort.

Remedy

  1. Verify that the mobile application is active and can reach the Public Safety and Security instance service endpoint.
  2. Verify that the user is signed in, active in the Identity Domain, and enabled in Radio.
  3. Verify that the application retained its Radio device ID and sends authenticated heartbeats for that device.
  4. If the application lost its Radio device ID, re-register the device.
  5. Refresh the Devices page after Radio receives another heartbeat.

A REST Device Request Fails

A device-registration or inventory request returns an error or an uncertain result.

Cause

The request can use an invalid identifier, an expired or already used grant, the wrong signed-in user, or insufficient Radio permissions.

Remedy

  1. Check the exact operation path and parameters in registration grants, device inventory, or mobile registration.
  2. Use the returned registration ID for grant revocation and the returned Radio device ID for device operations. Don't substitute the advertising ID or one-time code.
  3. For a completion conflict, inspect registration state and obtain a fresh grant if the original is expired, consumed, or revoked. If completion might already have succeeded, have the administrator inspect device inventory first.
  4. When listing registrations, check additional pages while hasMore is true and verify the usageMode filter. See registration pagination.
  5. For authentication or authorization failures, follow API errors. Keep access tokens and registration values out of support records.

Channels and Participants

Use this guidance to troubleshoot channel discovery, membership, participants, and connections.

A Saved Channel Subscription Doesn't Produce Live Events

A REST request or Join in the Radio app saves a channel subscription successfully, but the client doesn't receive live events for that channel.

A saved subscription and the current WebSocket connection's channel membership are separate. A REST save doesn't open, authenticate, or join a live connection. The browser attempts to start listening after Join, but connectivity or authorization can prevent live participation.

  1. Verify the saved channel with the verification steps.
    In the browser, Leave is available for a joined channel, but that action alone doesn't prove a live connection. A REST list response uses channelName; an empty subscriptions array with count 0 is a successful empty result.
  2. Verify client authentication for the current connection.
    A supported bearer-token connection must receive AUTH_SUCCESS. The Radio web application uses its gateway-managed session instead.
  3. In the browser, check the connection status and whether the channel is being listened to. For an unjoined channel, select Join and wait for Joining… to finish. For a joined channel after a connection interruption, restore connectivity and allow Radio to reconnect, then check the listening and transmit state. For an API client, follow the join steps and check the channel result before expecting live events.
    If access is rejected, have an administrator check the operation's Radio permissions and channel access. Don't repeatedly add a saved REST subscription or select Leave merely to repair connectivity; Leave removes saved membership.

A Saved REST Subscription Doesn't Connect the Channel

The REST subscription request succeeds, but the WebSocket connection hasn't joined the channel.

Cause

A saved subscription and a connection-local WebSocket subscription are separate states.

Remedy

  1. Choose the appropriate method in channel tasks and review its permissions. In the browser, Join saves membership and starts listening. Transmit selects one voice target; opening a workspace does not change it.
  2. Verify the saved channel name with the subscription list.
  3. Authenticate the WebSocket connection and follow joining channels.
    To discover visible channels, use LIST_ALL_CHANNELS. LIST_CHANNELS reports only the current connection's subscriptions; an empty result doesn't establish that no channels are available.
  4. Wait for a successful subscription result before using operations that require membership.

The Displayed Channel Is Not the Intended Talk Channel

You are listening to several channels or have opened another workspace and need to check where your voice will be sent.

The browser's displayed workspace, listening channels, and transmit channel are separate selections. A saved transmit target is restored only when it is joined and listening; it doesn't reserve the talk floor.

  1. Release the talk control before changing channels.
  2. Open the channel list and verify that you are listening to the intended joined channel. Follow the channel steps.
  3. Use Transmit to choose the voice target and verify the displayed channel before requesting the floor.
    Check again after stopping listening to or leaving a channel. If you can't confirm the target or a talk request fails, don't continue transmitting; report the app version and nonsensitive error details to your administrator.

A Channel Handle Is Rejected

Channel creation reports an invalid handle.

The handle might exceed 64 characters or contain unsupported characters.

  1. Use no more than 64 letters, numbers, hyphens, or underscores. Radio normalizes the handle to lowercase; don't confuse it with the display name.
  2. If the handle meets these rules, review the returned error and verify your channel permissions. Follow channel creation.

A Channel Shortcut or Channel Reorder Doesn't Work

In the browser app, a channel key doesn't select the expected channel, or you can't move a channel in the list.

Shortcuts follow the saved channel positions. Settings, keyboard focus, and channel participation affect which actions are available.

  1. For reordering, clear channel search text and verify that the list contains at least two channels. Follow the ordering steps.
  2. Open Settings. Under Hotkey, verify Enable channel shortcuts and the key for the required position. Use distinct channel keys and a separate talk key, or select Restore 1–9 shortcuts.
    See shortcut settings. Confirm the channel label again after reordering.
  3. Close Settings and any dialog, then return keyboard focus to the Radio workspace. Radio shortcuts don't run while focus is inside a form, including its selection controls, or a dialog. Press the channel key without Ctrl, Alt, or Command.
  4. To select a transmit channel with Shift plus its channel key, first join and listen to that channel. Check the displayed target before using the separate talk shortcut or talk button.
    If the target remains uncertain, stop and follow target guidance.
  5. If saved order or keys aren't retained, follow settings guidance.

Channel Participants Don't Match Saved Subscriptions

A saved subscriber isn't in the live member list, or a user remains online after leaving a channel.

Cause

Saved subscriptions and active WebSocket sessions are different. A user appears in a channel's live list only while at least one active session is present on that channel. Another session can keep the user online elsewhere.

What to Do

  1. In the browser, select the channel and use Join if needed. Wait for the action to finish and verify the connection before selecting the member count to review participants. See channel steps.
  2. For a WebSocket client, refresh authorized channel-user lists named by PRESENCE_UPDATE.affectedChannels. Don't use the optional channel field as a complete membership list. Follow presence monitoring.
  3. After reconnecting, re-establish presence monitoring and obtain a new snapshot. Restore required live channel subscriptions separately.

Push-to-Talk and Audio

Use this guidance to troubleshoot push-to-talk controls, audio readiness, and transmission.

Oracle Radio Is Disconnected or Audio Doesn't Transmit

The Radio client reports a disconnected state, doesn't receive live updates, or doesn't transmit audio.

Cause

The client connection, microphone permission, selected audio device, channel state, or transmit-floor state isn't ready. A mobile user can also be off duty.

Remedy

  1. Verify the Radio connection state and network access to the service endpoint.
  2. Check the selected audio input, output, and speaker volume. Verify microphone access if you need to transmit; on iOS, it is also required for Background Reception or Pocket Mode.
    Foreground iOS listening doesn't require microphone access. To allow transmission or background reception after a denial, enable microphone access for Oracle Radio in the iPhone’s app settings. Unmute incoming audio and adjust the volume on your phone or connected headset. Verify that you are on duty and connected before repeating the radio check. For browser audio preferences, see Radio settings.
  3. Verify that the user joined the intended channel and has permission to transmit. In the browser, select Join if needed, wait for the change to finish, and verify the connection. Select the intended channel with Transmit and check the target before speaking. Leave stops listening and removes saved membership; after leaving or reconnecting, check the target again.
  4. Verify that Radio granted the transmit floor before audio was sent.
  5. After an interrupted session, restore connectivity and allow the app to reconnect. Recheck the active talk channel before retrying.
    On iPhone, follow the channel steps. For an API client, restore live channel subscriptions. For locked or background iPhone reception, use reception help.

A Mobile Connection Is Open but Audio Is Not Ready

The mobile connection returns PONG or the device appears online, but these signals do not establish that it can receive audio.

Cause

The connection has no registered device binding, readiness has not been reported, its report expired, or the connection was replaced. Channel membership and the application's audio state also remain separate requirements.

Remedy

  1. Verify the current device registration and authenticated connection using device guidance. After re-enrollment or a different-user replacement, use the current registration and intended user.
  2. Restore the required live subscriptions and confirm that the mobile audio path is ready.
  3. Follow readiness reporting. Use the server-advertised renewal interval, inspect acknowledgments, and report not ready when audio becomes unavailable.
  4. If audio is still unavailable, review the audio requirements and collect nonsensitive failure details for support. Do not assume notification delivery or replay of missed audio.

Android Talk Mode Changed or the Screen Button Is Unavailable

The on-screen button requires holding after an upgrade, does not start transmission, or remains unavailable.

Cause

The upgrade switches screen PTT to hold mode once. The controls can also be disabled, or the app may lack a connected active channel, microphone access, or transmission permission.

Remedy

  1. Open Settings, select Radio & Voice, and check Screen PTT Button. Turn on Enable.
    Leave Tap to toggle talking off to hold and release. Turn it on to tap once to start and again to stop. See Android settings.
  2. Verify that you are signed in, on duty, and connected to the intended active channel. Allow microphone access and ask your Radio administrator to check transmission permission if access is denied.
  3. Follow the Android talk steps and wait for transmission before speaking.
    Releasing in hold mode stops transmission or cancels a pending request. In tap-to-toggle mode, use Tap to stop or Tap to cancel; releasing alone does not stop it.

iOS Talk Mode Changed or the Screen Button Is Unavailable

The iOS screen button requires holding after an upgrade, doesn't transmit, or is unavailable.

The upgrade switches screen PTT to hold mode once. The button can also be disabled or unavailable because the active channel isn't connected, microphone access is denied, or your account lacks the required access.

  1. In the app's Settings, select Radio & Voice and turn on Enable under Screen PTT Button.
    Leave Tap to toggle talking off for hold/release, or turn it on for start/stop taps. Later choices persist; resetting settings restores hold mode. See iOS screen PTT settings.
  2. Verify that you are signed in, on duty, and connected to the intended active channel, and allow microphone access.
    If access is denied, ask your administrator to check your voice permissions and channel access.
  3. Follow the iOS talk steps and wait for Transmitting before speaking.
    In hold mode, releasing cancels a pending request or ends transmission. In tap mode, use Tap to cancel while pending or Tap to stop while transmitting; lifting your finger doesn't stop transmission.
  4. Verify that transmission has ended before putting the device away.
    Dynamic Island uses a separate background control. For that control, follow background PTT guidance.

iPhone Background PTT or Lock-Screen Talk Is Unavailable

The blue system Push-to-Talk indicator doesn't appear in Dynamic Island, the lock-screen Radio control doesn't open, or Talk doesn't transmit.

Cause

Background Reception might be off, microphone access might not be allowed, or Radio might not be signed in, on duty, and connected to the intended channel.

Remedy

  1. In the Oracle Radio iOS app, open Settings, select Background Reception, and verify that reception is on.
    You can also expand the duty and connection row in Radio to review Pocket Mode.
  2. Review Microphone and allow access if needed. Use Allow Microphone Access when offered, or grant access in iOS Settings.
    Background Reception requires microphone access because Radio joins the iOS system Push-to-Talk channel even when you only listen. Foreground listening remains available after microphone denial; opening Settings or turning reception off doesn't request access.
  3. Return to Radio, verify that you are signed in and on duty, and confirm the intended active channel and connection.
  4. If audio remains unavailable, keep Oracle Radio open and select Reconnect Background Reception in Settings or Reconnect Pocket Mode in the expanded Radio connection row. Review the status after recovery.
    An enabled switch saves your preference; it doesn't confirm connection or audio delivery. Restore connectivity and allow recovery before considering sign-in recovery. Don't re-enroll for every temporary interruption.
  5. Lock an iPhone with Dynamic Island, select the blue Radio indicator, and press and hold Talk.
    The lock-screen control uses press-and-hold behavior. It also displays Leave for the background Radio channel. Closing the app may leave that session connected; turn reception or Pocket Mode off to disconnect. Doing so also disables Bluetooth talk and the lock-screen Action Button, but retains Bluetooth pairing.
  6. If the control remains unavailable, record the app version, iPhone model, iOS version, displayed channel, and nonsensitive error text for your administrator or support contact.

Priority Talk Isn't Available

You need to interrupt a lower-priority transmission, but the Priority Talk control isn't displayed or the request doesn't start a transmission.

Cause

The channel might not be connected or busy, your account might lack the Priority Talk capability or normal channel permissions, or the current transmission might have equal or higher priority.

Remedy

  1. Verify that you joined and are listening to the intended channel. Check the transmit target before speaking. See channel actions.
  2. Check the channel state and your talk mode. When connected, use Hold to talk or Tap to talk. When busy, authorized users see Hold to interrupt and talk or Tap to interrupt and talk.
  3. Ask a Radio administrator to verify your permissions and channel access. Priority Talk requires radio.talk.priority.high as well as normal talk permission.
  4. If the request isn't granted, don't speak. Wait for the current transmission to finish before trying again. Follow the talk procedure and begin speaking only when Radio shows Transmitting.

Browser Transmission Continues After Releasing the Talk Control

Radio still shows Transmitting after you release the talk button or keyboard shortcut.

Cause

In Tap to talk mode, one press starts the request and a second press stops it. Releasing the button or key alone doesn't stop transmission.

What to Do

  1. Select Tap to stop, or press Shift and your configured talk key again, and verify that Radio no longer shows Transmitting.
  2. If you prefer hold-and-release behavior, open Settings, select Audio, and set Talk mode to Push to talk.
    The same preference applies to the Radio page, floating control, and shortcut. See the talk steps. Stop transmitting before hiding the control.

The Floating Oracle Radio Control Is Missing or Unavailable

You can't find or use the floating Radio control on another Radio page.

The control appears only on supported pages when application and personal settings allow it, you have talk permission, and you are listening to a channel. A hidden control is represented by its launcher.

  1. Open Radio and verify that you have joined and are listening to the intended channel. Follow the channel steps.
  2. In Settings, select Appearance and enable Show Radio control in other applications.
  3. Open Locations or a supported administration page. If the launcher appears, select Show Radio control. Expand the control to choose a transmit channel.
    Compact or touch-enabled browsers initially show the launcher; this doesn't mean the feature is disabled. The Radio workspace has its own talk controls. See supported pages.
  4. If the control remains unavailable, ask your administrator to verify application settings and your voice permissions.
  5. If the control appears but can't transmit, check the connection and displayed transmit channel before requesting the floor. Follow target guidance.

Mobile Critical Alert Continues, Is Unavailable, or Has No Location

Critical Alert continues after you try to finish, can't start voice transmission, or has no location update.

Cause

Voice depends on connectivity, the active channel, microphone access, and Radio authorization. Location is a separate authorized request and can be unavailable.

What to Do

  1. If an active alert shows remaining capture time, allow the 10-second minimum audio capture to complete, then follow the displayed controls to finish.
    This minimum applies after transmission starts on both Android and iOS. Trying to finish sooner doesn't end the alert.
  2. Verify the active channel and connection, and allow microphone access. On Android, check that the app isn't in receive-only mode, already transmitting, or switching networks.
  3. Follow the correct platform steps: hold on iOS, or select and confirm on Android. Wait for transmission before speaking.
  4. For denied transmission, ask an administrator to check voice permissions and channel access.
  5. For missing location, check device location access and location permission.
    iOS doesn't request location permission during the alert. Voice and location results are separate; neither proves that every recipient received the alert. Follow your organization's alternative communication procedure when delivery can't be confirmed.

Messages, Recordings, and Transcripts

Use this guidance to troubleshoot messages, recordings, transcripts, translation, and activity.

The Oracle Radio Message Area Isn't Available

Instead of an editable message area, the browser shows Not joined, Joining channel, Messaging unavailable, or Could not join channel. Controls can also be unavailable during a Joining… or Leaving… action.

Cause

You haven't joined the channel, a membership change is pending or failed, or your access doesn't allow messaging in the channel.

Remedy

  1. For Not joined, select Join in the channel workspace, channel list, or Channel actions menu. Wait for Joining… to finish before composing a message. The message area doesn't contain a separate Join button.
  2. If a membership change is in progress, wait for it to finish and check the channel state. Talk and message controls for that channel are unavailable during the change.
  3. For Messaging unavailable, ask a Radio administrator to verify your permissions and channel access.
  4. For Could not join channel, review the error and correct any connection or access problem. Check the current membership and connection state before retrying an available Join action. An interrupted action doesn't prove that the saved subscription is unchanged; use the verification steps when the result is uncertain.
  5. When the editable message area appears, follow send messages.

Oracle Radio Channel Activity Is Empty or Can't Be Loaded

The channel workspace shows No activity yet, Activity unavailable, or Activity could not be loaded.

Cause

An empty result, an authorization denial, and a failed load are different conditions. Selecting an unjoined channel can load an authorized activity snapshot without joining it; it doesn't subscribe you to live updates.

Remedy

  1. For No activity yet, verify that you selected the intended channel. The loaded result is empty; this message isn't an instruction to join.
  2. For Activity unavailable, have a Radio administrator verify your permissions and applicable channel access. Joining isn't a substitute for authorization.
  3. For Activity could not be loaded, review the error and check your connection, then select Try again.
  4. If earlier entries are missing, clear Find and select Load older activity. If loading another page fails, select Try again. Entries already loaded remain available.
  5. Follow channel activity to inspect and search the loaded entries.

Find Doesn't Show an Expected Channel Entry

The channel workspace shows No transcript entries match this search., or an expected entry isn't in the results.

Cause

The search text doesn't match a sender or message in the loaded entries, the wrong channel is selected, or the expected entry isn't loaded. Find doesn't search all stored channel history.

Remedy

  1. Verify that the intended channel is selected. Use Search channels in the Channels header to find a channel; use Find in its menu to filter loaded entries. See channel search.
  2. Clear the text in Find in transcript, or select Close find, to show all loaded entries.
  3. If the entry is loaded, search again using part of its sender's name or message text. Capitalization doesn't affect the results.
  4. See channel activity for the complete procedure.

Mobile Inbox Is Empty or Cleared Messages Return

Inbox doesn't show expected entries, can't play a recording, or restores cleared messages after refresh.

Cause

Filters, connectivity, authorization, or recording availability can affect the view. Clearing local entries doesn't remove server history.

What to Do

  1. Check the selected All, Received, or Sent filter and the channel/date grouping in mobile Inbox.
  2. For new mobile communication, confirm that you are signed in and on duty, and that Radio notifications are enabled in the device's application settings. Review the receiving prerequisites.
  3. Confirm that sign-in and connectivity have recovered before refreshing. Ask your administrator to verify history/audio permissions and channel access if entries remain unavailable.
  4. On Android, read any history-coverage notice. If it recommends the web app, review browser activity for additional available history.
    A limited or unknown result isn't proof that older history was deleted. Don't assume that a refresh returns every stored message.
  5. For unavailable audio, check the entry's age and follow recording guidance.
    On iOS, received voice playback expires after eight hours even if its entry and transcript remain in Inbox. This app rule doesn't apply to sent recordings or define server retention. An unread expired entry can be marked read by opening it; playing the audio isn't required.
  6. If cleared entries return, review your organization's history-handling requirements. Don't treat local deletion as deletion of server records or other users' copies.

An Oracle Radio Recording Can't Be Played or Downloaded

An individual recording's Play or Download action fails even though its activity entry is visible.

Audio access is checked separately from displaying an activity entry. The recording might be unavailable or inaccessible under your current Radio authorization.

  1. Read the displayed error before retrying.
    For a connection failure, restore connectivity before retrying. Don't treat transcript availability as evidence that the audio can still be retrieved.
  2. For an access error, ask a Radio administrator to check your channel access and permissions.
  3. If the recording remains unavailable, report the displayed error, time, channel, and Radio UI version through your support process.
    Don't include downloaded audio or transcript content unless your organization's information-handling policy permits it. See channel activity.

A Voice Entry Has No Transcript

A recording is available, but its activity entry has no transcript text.

The sender can disable server-generated transcription without disabling recording. A missing transcript can also reflect processing or delivery failure; it doesn't by itself identify the cause.

  1. For your own transmissions, review Transcribe my transmissions under Audio in Radio settings. Your preference doesn't control another sender's transcription.
  2. If transcription is enabled but the entry reports a processing error, follow the processing guidance.
  3. Use an available recording's Play control if authorized. Don't retransmit a message merely to generate text. Disabling transcription doesn't delete existing text or suppress text supplied by a client.

Recording Activity Is Processing or Failed

When recording activity is available, a completed transmission shows Processing recording…, Processing is taking longer than expected, a processing-failure message, or an access error.

Cause

Radio hasn't received the final transcript for the activity. Processing can take longer than the browser's automatic history checks, a connection loss can delay the update, or authorization can prevent recovery. The displayed state alone doesn't establish whether the recording is stored or recoverable.

Remedy

  1. Check the channel's connection state. If disconnected, restore the connection using the channel instructions.
    Radio resumes its history checks after reconnecting.
  2. If the entry reports Processing is taking longer than expected, select its Try again control.
    Radio checks channel history again. It stops automatic retry for authorization or not-found responses; repeated retries don't override access or create a missing result.
  3. Review subsequent channel activity. A later final result can replace a processing entry; don't assume that a processing label is a completed transcript.
  4. If the result remains unavailable, record the channel, transmission time, displayed status, and Radio UI version for your administrator or support contact. Don't retransmit sensitive or operational messages solely to clear the processing status.

Transcript Translation Is Unavailable

The Browser App displays the source transcript without translation and has no Translate action or Translation settings.

Transcript translation isn't available in the Browser App. Changing the interface language doesn't translate message content.

  1. Use the displayed source transcript or the recording's Play control when audio is available within your authorization.
    See channel activity. A visible transcript doesn't guarantee that the recording remains available.
  2. If the transcript or recording is missing, follow the separate transcript guidance or recording guidance.
    Don't retransmit sensitive or operational audio solely to obtain different text.
  3. If only the interface labels are in an unexpected language, follow the separate interface-language guidance.

Settings and Browser Controls

Use this guidance to troubleshoot settings, shortcuts, browser controls, and display preferences.

Oracle Radio Settings Aren't Saved as Expected

An account-setting update fails, a saved value is missing, or a browser setting doesn't follow you to another device.

Account, session, and browser settings have different storage scopes. A failed update doesn't confirm a save, and a REST update can replace nested values.

  1. Check the setting's scope in Radio settings.
    Microphone and speaker selections last for the signed-in session. Dark mode, language, and location-sharing choices apply to the current browser. The preference to show the floating Radio control and the transmit-channel selection save to your account.
  2. For an account-setting failure, verify your sign-in and settings permissions. Follow the error guidance for a failed REST request.
  3. Check the canonical fields, types, and ranges in REST settings.
    Use settings.radio, not older aliases. A GET can return an empty settings object before the first save; the Radio app applies its defaults for unset preferences.
  4. After a REST update, use getMySettings to verify the stored values.
    A merge preserves other top-level keys but replaces any nested object supplied for a key. Preserve nested values that must remain. Don't assume a failed request saved the requested changes.

Oracle Radio Displays Unexpected Distance Units

Browser map or geofence distances use an unexpected unit, or a geofence radius is rejected.

A personal unit selection overrides the instance default. The geofence form converts the displayed unit to meters before checking its accepted range.

  1. Open Settings, select Units, and check Distance units.
    Select Meters or Miles for a personal preference, or Server default to follow the instance default. If the selection doesn't save, follow settings guidance.
  2. When editing a geofence, enter its radius in the unit shown beside the field and follow the validation message.
    The form accepts a radius equivalent to 25 through 10,000 meters. Don't enter a meter value in a miles field. See geofence administration.
  3. For geofence REST requests, keep radius values in meters regardless of your display preference.

Oracle Radio Displays an Unexpected Interface Language

Radio uses an unexpected language, or changing browser language preferences doesn't change the Radio interface.

An explicit Radio language selection takes precedence over browser preferences. Browser-language selection uses an available language match or English.

  1. Open Settings, select Language, and choose Browser language or the available language you want.
    The selection is saved separately in each browser when storage is available. This isn't an account preference controlled by the settings REST API. See language settings.
  2. If the language remains unexpected, record the browser's preferred languages, the displayed language, and the Radio UI version, and contact your administrator or support contact.
    Find the version under About in Radio Settings. Don't change authentication settings or clear all browser data as a language workaround.
  3. If only messages or transcripts are in a different language, distinguish their content from interface labels.
    Interface localization doesn't translate customer content. See channel activity.

A Table Action Cannot Be Reached with Tab

Tab moves past a table without focusing a button inside a cell.

The table uses cell navigation before controls inside a cell become keyboard targets.

  1. Use arrow keys to move to the cell, then press Enter or F2 to reach its controls.
  2. Press Escape to return to cell navigation, then Tab to leave the table. See keyboard navigation.

Locations and Geofences

Use this guidance to troubleshoot location sharing, location history, and geofences.

This Browser Isn't Sharing Its Location

The Location settings report that sharing is off, browser access was denied, the location is unavailable or stale, or the most recent location couldn't be sent.

Cause

The sharing preference might be off, browser location access might be blocked or unsupported, the browser might not have a current position, or the service might reject or fail to receive the update.

Remedy

  1. Open Settings, select Location, and review Share this browser's location and the status. If sharing is appropriate for your role, turn it on. See Radio settings.
  2. If browser access was denied, allow location access in the site's browser permissions, and then turn sharing off and on again.
  3. If the browser doesn't support location sharing or can't determine a current position, check the browser and device location settings. Don't assume a stale position is current.
  4. If the position couldn't be sent, verify that your session and network connection are available. While sharing remains enabled, Radio retains a temporarily failed reading for retry and requests a current reading again when the connection or browser becomes active. Review the status for confirmation that a later position was sent. For a service access error, ask a Radio administrator to review your permissions.
  5. If sharing still fails, record the displayed status, browser, and Radio UI version for your administrator or support contact. Don't include access tokens or unnecessary location details.

Locations Is Empty or Out of Date

The map shows no locations, the Person list is empty, a position is stale, or the page reports that existing map context might be out of date.

Cause

The current filter might have no available personnel with location data, automatic updates might be paused, or a refresh request might have failed.

Remedy

  1. In the application-wide Locations page, select another Channel filter or All visible personnel. This workspace loads at most 25 saved channels and only people with returned coordinates from that set. In Live, also check the Person filter. See Locations.
  2. In that page, select Resume live updates if updates are paused, or select Refresh now. If the page reports a loading error, select Try again.

    The channel's Locations tab doesn't have these controls. Its Member selector includes only members with a displayed position. See channel locations.

  3. Check the displayed update time and freshness status. A transmitting marker doesn't confirm a new location report. Treat any retained map data as potentially out of date after a failed refresh.
  4. If your own location is missing, review location sharing and the browser's sharing status. A map centered near you can still show No personnel locations available; centering isn't evidence of a personnel report.
  5. For a mobile position, check the device's location permissions. Android tracking also requires the app's sharing choice, your agreement acceptance, and a valid authenticated on-duty session, in addition to precise and background access. Review the sharing choice on a shared device rather than assuming that sign-in resets it. On iOS, return to the app; Radio uses When In Use permission and doesn't track location in the background.
    On Android, Map Info opens the legend and automatic channel details. Dismissing that drawer returns to the map; it doesn't restore a missing position or change permissions. See map information.
  6. If expected personnel remain unavailable, ask a Radio administrator to verify channel access and whether location data is available for those members. See channel access. An empty view alone doesn't identify a device or permission problem.

Location History or Geofence Boundaries Aren't Available

Location history has no results or fails to load, or Show geofences is disabled.

Cause

History requires available records and access through an active shared channel. Boundaries might be absent or unavailable to your view.

Remedy

  1. For history, select a shared channel and a person, then check History range. In a channel's Locations tab, use Member and History, then select Show history. If no person is listed, follow the location guidance.
  2. If history access fails, ask a Radio administrator to verify radio.message.history, channel visibility, available history, and active membership for both you and the selected person. See Locations.
  3. If Show geofences is disabled, ask a Radio administrator whether boundaries are configured and available to your account. The disabled switch alone doesn't distinguish missing boundaries from unavailable access.

A Geofence Can't Be Saved or Its Preview Is Confusing

A geofence save reports an error, or Location details says No boundary coordinates are available while the map shows a circular boundary.

Cause

The form can reject invalid values, or the service can reject an unauthorized or unavailable operation. The location-details message can also appear when the boundary preview has no individual location markers; it doesn't establish that the entered boundary is missing.

Remedy

  1. Review the name, membership domain, latitude, longitude, and radius in geofence administration. Verify that the membership domain is the intended Identity Domain OCID.
    Enter the radius in the unit shown in the form; its converted value must be from 25 through 10,000 meters. See unit guidance.
  2. Compare the coordinate fields with the center and radius summary under Boundary preview. Use these values to review the boundary if the expanded details message conflicts with the visible map.
  3. For an access error, ask an administrator to verify your geofence read and manage permissions. For an availability error, wait until the operation is available before retrying. See permissions.
  4. After a successful save, close and reopen Manage geofence to verify the settings. Don't treat a drawn boundary or the entry/exit message as confirmation that saving succeeded.

A Geofence Subscription Doesn't Match Expectations

Your saved channel subscription changes unexpectedly, doesn't change after an expected boundary crossing, or a membership notification arrives but the channel isn't connected for live operations.

Cause

Geofence actions depend on reported locations, the configured boundary and automatic-action settings, and authorization. Saved subscriptions are separate from a WebSocket connection's live memberships. The map display and membership notifications alone don't establish the current subscription and connection states.

Remedy

  1. Review the last reported position and its update time in Locations. An old position might not reflect the boundary crossing you expect.
  2. Ask a Radio administrator to check the geofence settings: availability, enabled state, membership domain, and the expected entry or exit action. Also verify your channel access and permissions.
  3. If a manually added subscription disappeared on exit, ask an administrator to review Remove users when they exit. That action can remove manual subscriptions too. Don't use Show geofences or Pause live updates to disable automatic actions. These controls change the page display, not the configured behavior. See geofence behavior.
  4. For an integration, check saved subscriptions and live memberships separately. Follow the join procedure if the current connection still needs to join.

    A missing MEMBERSHIP_CHANGED notification doesn't prove that a saved subscription is unchanged. See geofence events.

  5. Before speaking, check the channel state and follow the talk procedure. Wait for Transmitting. For related questions, see the Locations FAQ.

A Geofence REST Request Fails

A geofence read or change is rejected, or a deletion returns HTTP 200 with an ERROR result.

Request values, channel access, and the returned action result must be checked separately.

  1. Verify the channel name, encoded as one path segment, and the read or manage permission in geofence REST operations.
  2. Check coordinates and send radius in the PUT body, not the response property radiusMeters. Include all settings you intend to retain in a replacement.
  3. Inspect the JSON type, even after HTTP 200. For deletion, ERROR can mean no boundary exists for the accessible channel. Read current state before retrying.
  4. For 404 NotAuthorizedOrNotFound, have an administrator verify both access and the resource; the response does not distinguish them.

APIs and Live Connections

Use this guidance to troubleshoot authentication, requests, API errors, and live connections.

If a REST request succeeds but you don't receive live channel events, check the workflow's required method. A saved REST subscription doesn't join the current WebSocket connection. Review the API comparison and the join steps before retrying.

Use the workflow guide to find the procedure for the task that failed. The REST flow diagram shows saved-state checks, and the WebSocket workflow diagram shows authentication, live joining, and reconnect steps. Continue with the operation's failure guidance before retrying a rejected request.

The OCI SDK or CLI Doesn't Provide Oracle Radio Operations

You can manage Public Safety and Security instances but can't find Radio user, channel, message, or WebSocket operations in the OCI SDK or CLI.

These clients manage Public Safety and Security instances and work requests, not Radio application operations. No supported Oracle Radio SDK is currently distributed.

  1. For Radio integration, use the published REST API and WebSocket API directly.
  2. Follow the numbered API setup instructions. Use Console, CLI, or API for instance endpoint retrieval, then the applicable Radio app, REST, or WebSocket method. The cURL and PowerShell examples send REST requests; they aren't OCI CLI Radio commands. Don't treat an unpublished generated Radio package as a supported SDK.

An API Request or WebSocket Connection Is Rejected

A request to the Public Safety and Security control-plane API or Oracle Radio REST API fails authentication, a browser WebSocket upgrade is rejected, or a bearer WebSocket client receives AUTH_ERROR or AUTH_REQUIRED.

Cause

The client used the wrong authentication method for the API surface, sent an invalid or expired credential or session value, omitted required request signing or browser CSRF state, or authenticated successfully but lacks the required authorization.

Remedy

  1. Identify whether the request uses the Public Safety and Security control-plane API or an Oracle Radio API, and whether the Radio client is a browser or a native or API client. See authentication methods.
  2. For a Public Safety and Security control-plane request, verify that the request is signed according to OCI requirements. Check the client's system time, target region and published endpoint, and OCI IAM policy for the operation.
  3. For a Radio REST request, copy serviceEndpoint from the instance details. It already includes /api/; append only the remaining operation path. Don't substitute the raw API Gateway hostname or the browser's uiEndpoint.
  4. For the supplied Radio browser application, allow any return to Identity Domain sign-in to finish, then verify the connection and intended channel before resuming. Authentication navigation alone isn't a service outage.
    The application manages its session and the gateway-provided CSRF value. Don't copy cookies or tokens to bypass the sign-in flow.
  5. For a native or API Radio client, verify that the Identity Domain bearer access token is valid and unexpired. Send it in the REST Authorization header. For WebSocket, open the connection and send the token in AUTH; don't rely on the upgrade Authorization header.
  6. After authentication succeeds, verify separately that the principal maps to an enabled Radio user with the required Radio permissions and any applicable channel access.
  7. If Radio token validation fails, ask your Identity Domain administrator to verify that Configure client access is enabled under Access signing certificate in Domain settings, and that the change was saved.
    Follow the setup steps. Radio must be able to read the domain's public signing keys without signing in.
  8. For detailed credential placement and browser CSRF use, see authentication.

An Authenticated Oracle Radio REST Request Returns 404 NotAuthorizedOrNotFound

An authenticated Radio REST request returns HTTP 404, error code NotAuthorizedOrNotFound, and the message Authorization failed or requested resource not found.

Cause

For operations that use this response, an authorization failure and a missing or unavailable resource intentionally have the same response. The response doesn't identify which condition occurred.

Remedy

  1. Verify the request URL, path parameters, and resource identifiers against the supported REST operation.
  2. Don't use the response to determine whether the requested resource exists.
  3. Have an authorized administrator use the Users and Groups pages to verify that the Radio user is enabled and has the required permission. Verify applicable channel access separately.
  4. Correct the identifier or authorization condition before retrying. Don't repeat the unchanged request.
  5. See REST Errors for the REST error categories.

An Oracle Radio WebSocket Connection Doesn't Open

The WebSocket HTTP upgrade is rejected, a bearer connection opens but isn't authenticated, or the connection closes before the client can exchange Radio messages.

Cause

The client can't reach the Public Safety and Security instance entry point, used an unsupported connection path, has an invalid or expired credential or browser session value, omitted the bearer AUTH step, or authenticated as a user who isn't enabled for Radio.

Remedy

  1. Verify that the Public Safety and Security instance is available and that the client can reach its service endpoint. Check the instance details. Construct the URL with wss, the returned Public Safety and Security hostname and any explicitly supplied port, and /ws/radio. Don't add a port number. Remove the REST /api/ prefix; paths such as /api/ws/radio are incorrect. See URL construction.
  2. Verify the authentication method and credential placement for the browser, native, or API client. For a bearer connection, send AUTH after the socket opens and wait for AUTH_SUCCESS. See authentication.
  3. Verify that the Identity Domain user is active and the corresponding Radio user is enabled.
  4. Record the customer-visible HTTP response, authentication response, and WebSocket close result, and the request ID if one is returned. Correct an authentication or authorization problem before reconnecting.
  5. For other temporary connection failures, reconnect with backoff. The Radio WebSocket API doesn't define a fixed retry interval or guaranteed close-code mapping. See WebSocket errors.

Oracle Radio WebSocket Authentication Fails

A bearer-token WebSocket connection opens but returns AUTH_ERROR, or another operation returns ERROR with AUTH_REQUIRED.

Cause

The client didn't send AUTH, sent an invalid or expired access token, tried to renew as another principal, or sent AUTH on a gateway-authenticated browser connection.

Remedy

  1. Start with the client steps, not the transport alone. The Radio web application uses gateway-managed browser authentication; a supported bearer-token client follows the token sequence. A gateway-authenticated browser connection must not send AUTH. If it receives AUTH_ERROR after sending that message, stop sending AUTH; the accepted browser session remains unchanged.
  2. For a bearer-token connection, obtain a current Identity Domain access token for the intended enabled Radio user. Don't place it in the URL or rely on the upgrade Authorization header.
  3. For initial bearer authentication, send AUTH and wait for AUTH_SUCCESS before sending a Radio operation. A PONG response doesn't confirm authentication.
  4. For renewal, use a token for the same principal as the authenticated connection. If renewal returns AUTH_ERROR, the new token hasn't been accepted and the session's expiry hasn't been extended. Authorized operations can continue while the previously accepted session remains valid.
  5. After AUTH_SUCCESS, send WHO_AM_I and verify the resolved user before restoring other connection state.

An Oracle Radio WebSocket JSON Message Is Rejected

The server returns ERROR for invalid JSON, an unknown message type, or missing or invalid properties.

Cause

The client sent malformed JSON, used an undocumented type, omitted a required property, supplied a value outside the documented constraints, or used the wrong WebSocket message kind.

Remedy

  1. Send the operation as one valid JSON object in a WebSocket text message.
  2. Use a customer operation listed in message families. Don't send undocumented service diagnostic message types.
  3. Compare every property with the operation topic's parameter table, required values, constraints, and request example.
  4. Use binary WebSocket messages only for audio packets after a valid talk-floor grant and START.
  5. Correct the message before retrying.

An Oracle Radio WebSocket Channel Subscription Is Denied

SUBSCRIBE returns SUBSCRIBE_DENIED, reports a denied channel result, or doesn't add the channel to LIST_CHANNELS.

Cause

The user lacks radio.channel.subscribe, the channel isn't visible to the user, the user lacks channel access, the channel selector is invalid, or the request didn't establish a live subscription on this connection.

Remedy

  1. Use the returned reason and code to identify the denial. For PERMISSION_DENIED, verify the user's permissions include radio.channel.subscribe.
  2. For ACL_DENIED, verify the user's applicable channel access. Send LIST_ALL_CHANNELS to verify that the target channel is visible; a hidden channel doesn't appear unless the user has access.
  3. Verify the exact channel name.
  4. For a portable SUBSCRIBE request, supply exactly one channel selector and prefer the channels array.
  5. Wait for SUBSCRIBED and verify that the target channel's subscribed result is true.
  6. Send LIST_CHANNELS to confirm the connection's live channel membership before a channel-dependent operation. See joining channels.

A Talk-Floor Request Is Denied or Queued

REQUEST_TALK returns DENIED, TALK_DENIED, or QUEUED instead of GRANTED.

Cause

The channel is busy or unavailable, the user lacks the required Radio permission or channel talk access, the connection isn't subscribed to the channel, or the request is waiting behind the current talk-floor holder.

Remedy

  1. Confirm that the connection is subscribed to the target channel and that the channel's subscription result is successful.
  2. For TALK_DENIED, use the returned reason and code to check the user's permissions and channel access. For ACL_DENIED, have an authorized administrator also verify the channel identifier and availability.
    The talk-floor request requires radio.talk.request. An ACL_DENIED result alone doesn't prove that the channel exists. Don't repeatedly retry an unchanged rejected request.
  3. For DENIED, don't transmit. Use the returned busy-holder or reason information, if present, to decide whether to request the talk floor later.
  4. For QUEUED, don't send START or binary audio. Wait for a later GRANTED result, or discard the queued state if the connection closes.
  5. Begin transmitting only after GRANTED. See transmitting audio.

Oracle Radio WebSocket Binary Audio Is Rejected

The server returns TOKEN_INVALID or ERROR while the client sends binary audio, or it sends an event that ends the active transmission.

Cause

The client sent audio without a usable talk token and active transmission, used a packet form that doesn't match the declared audio settings, exceeded the current audio-session limit, or continued after the token or transmission ended.

Remedy

  1. Stop sending binary audio when the server returns TOKEN_INVALID or ERROR, or sends INTERRUPTED, TOKEN_EXPIRED, or TRANSMISSION_TIMEOUT.
  2. Verify a successful channel subscription, send REQUEST_TALK, and continue only after GRANTED.
  3. Send START with the audio properties used by the encoder. Begin binary audio only after the WebSocket client reports that it successfully sent START.
  4. Send each encoded audio packet as one unframed binary WebSocket message and stay within the documented audio-session limit. See sending audio.
  5. For another transmission after a token or transmission ends, restart the talk-floor flow with a new token.

An Oracle Radio WebSocket Text Message Is Denied

TEXT_MESSAGE returns ERROR, or the initiating connection receives neither a success nor an error response.

Cause

The user lacks text-message permission or channel access, a critical message lacks the additional permission or access, the channel doesn't exist, the connection isn't subscribed, or the request is invalid. An internal or connection failure can leave delivery indeterminate. NotAuthorizedOrNotFound deliberately doesn't identify which access or resource condition failed.

Remedy

  1. For a text-message error, match the supplied clientMessageId to the pending request rather than rejecting every pending message on that channel.
    An access or resource-absence error omits channel and reason. Don't infer that the channel exists or that a particular permission is missing.
  2. Verify that the connection is subscribed to the target channel.
  3. For a normal message, verify the user's permissions include radio.message.send, and verify channel message access.
  4. For a critical message, also verify radio.message.critical and the applicable channel access.
  5. Correct any invalid channel, text, user, critical, or clientMessageId property by using message parameters.
  6. After correcting a confirmed validation or authorization rejection, use a new clientMessageId for a deliberate new attempt.
    Reusing the old identifier can replay the cached error without rechecking the changed request or permissions. Don't automatically downgrade a critical message.
  7. For an internal error or a connection failure without a terminal response, treat delivery as indeterminate. If retrying the unchanged request, retain its original identifier. Don't automatically switch identifiers or repeat a request that had no identifier.
    Retry protection depends on the cached result remaining available. No fixed protection period or guarantee across reconnects or service restarts is established.

Oracle Radio WebSocket Presence Updates Are Missing

The client doesn't receive expected PRESENCE_UPDATE events, or a presence query doesn't return a user the client expects.

Cause

No visible presence changed, the client didn't receive PRESENCE_SUBSCRIBED, the connection was replaced, the requested user is outside the caller's visible Identity Domain scope, or the connection isn't exchanging messages.

Remedy

  1. Send SUBSCRIBE_PRESENCE and wait for PRESENCE_SUBSCRIBED before relying on later events.
  2. Send GET_PRESENCE to establish a current visible baseline. Presence results are limited to the authenticated Radio user's Identity Domain.
  3. Send PING and confirm PONG before treating an interval without updates as a connection failure.
  4. After reconnecting, send SUBSCRIBE_PRESENCE again and obtain a new baseline. See monitoring presence.

Oracle Radio WebSocket State Is Missing After Reconnecting

The new connection opens, but channel events, presence updates, queued talk state, or a previous talk token no longer work.

Cause

The public contract doesn't define automatic restoration of channel memberships, a presence subscription, queued talk state, or talk tokens after reconnecting. The client assumed that prior live state was available on the new connection.

Remedy

  1. Don't assume that queued request state or a talk token from the closed connection can be reused. Stop any associated audio capture or playback.
  2. Send WHO_AM_I and verify the identity and state on the new connection.
  3. Send SUBSCRIBE for each required channel, wait for successful results, and use LIST_CHANNELS to verify live membership.
  4. If the client monitors presence, send SUBSCRIBE_PRESENCE again and wait for PRESENCE_SUBSCRIBED.
  5. Request a new talk token before another audio transmission. See session management.

A WebSocket Retry or Audio Transmission Fails

A disconnect leaves a text send uncertain, a talk token expires, or an audio message is rejected or can't be played in the browser.

Cause

Connection-local state expires, retry protection is limited, and message-size and codec constraints apply separately.

What to Do

  1. After reconnecting, authenticate and rebuild live subscriptions. Don't reuse old talk tokens or audio state.
  2. For an indeterminate text result, retain the unchanged payload and original clientMessageId if retrying.
    A cached response might no longer exist after a restart or on another service process, so duplicate prevention isn't guaranteed. A successful send also doesn't guarantee a history record. See text responses.
  3. For an expired talk token, stop transmitting and request a new grant if still needed.
    The current WebSocket grant lasts 30 seconds; use its returned expiresAt. See talk grants.
  4. Keep each complete inbound WebSocket message within 1 MiB and each audio session within 50 MiB. Use PCM or Opus for interoperability with the supplied browser application.
    AAC and AMR need a client with the appropriate codec. Review audio limits and audio formats.

An Oracle Radio Diagnostic Check Fails

The health or ping check fails, or a protected request fails after diagnostics succeed.

Public connectivity and protected user operations test different conditions.

  1. Use the returned serviceEndpoint and append v1/health or v1/ping once. See diagnostics.
  2. Send the public GET check without adding a bearer token or sign-in flow. For a network or service error, preserve the time and sanitized status for your support contact.
  3. If diagnostics succeed but a protected request fails, verify its authentication, Radio permission, and resource access separately using API errors. A health response is not a readiness guarantee.

More Help

For common customer questions, see the FAQ. For API result categories and safe retry guidance, see API errors. If a client no longer matches the published contract, follow the compatibility procedure.

When reporting a Radio browser problem, include the Radio UI version. Open Settings, select About, and read Version. Keep access tokens and one-time registration values out of the report.