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
- Run
oci pss instance create --helpto check the installed command's options. - Use
--admin-user-idfor the initial administrator Identity Domain user OCID, together with--identity-domain-urland--compartment-id. Follow the create example. - 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
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
- Get the instance details and read
lifecycleDetails. - Ask the administrator responsible for the tenancy's subscription to review the reported restriction.
- 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.
- 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
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
- Verify the tenancy, region, and applicable
max-instance-countlimit. See service limits. - Review the existing Public Safety and Security instances in that region, including the relevant compartments.
- 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
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
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
- Check the instance details for subscription restrictions. If access is restricted, follow the subscription guidance before retrying.
- Verify that the Identity Domain user is active.
- In Radio, select Users, and verify that the corresponding Radio user is enabled.
- Verify that the user belongs to a Radio group with the required permission.
- Verify any channel access rules for viewing, joining, transmitting, or sending critical messages.
- 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
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.
- Check for the System group label. For a system group, manage only permitted membership; don't retry a protected change. See protected access.
- For an ordinary group, have an authorized administrator verify your
radio.group.managepermission. To permanently remove it, follow the deletion steps. To retain it without granting its permissions, set Status to Disabled and select Save details. - 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 interpretNotAuthorizedOrNotFoundas proof that the group exists or was deleted. - 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
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.
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
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.
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
- In Radio, select Users, and verify that the intended user is enabled.
- On the Devices page, create a new registration for the intended user. For an existing device, select Re-register. See re-registration.
- Set Expires at to a future date and time, and select Create QR code.
- Have the intended user scan the newest QR value and sign in with that user's Identity Domain account.
- 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.
- Verify the signed-in user matches the intended enabled Radio user. The grant never replaces that user's bearer token.
- 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.
- If the code was lost, create a new grant and revoke the old reusable grant when appropriate. Listing registrations cannot recover its secret value.
- 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.
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.
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
- Verify that the user is using the supported Radio mobile application and a current application version.
- 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.
- Allow the browser to return to the installed application. Don't enter or replace the callback URI manually.
- 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. - 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.
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
- Verify that the user is active in the Identity Domain and enabled in Radio.
- Obtain a valid Identity Domain bearer access token by using the supported mobile OAuth flow.
- During the WebSocket HTTP upgrade, send exactly one
X-Oracle-Radio-Device-Idheader 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 inAUTHand wait forAUTH_SUCCESS. - 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
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
- Verify that the mobile application is active and can reach the Public Safety and Security instance service endpoint.
- Verify that the user is signed in, active in the Identity Domain, and enabled in Radio.
- Verify that the application retained its Radio device ID and sends authenticated heartbeats for that device.
- If the application lost its Radio device ID, re-register the device.
- 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
- Check the exact operation path and parameters in registration grants, device inventory, or mobile registration.
- 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.
- 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.
- When listing registrations, check additional pages while
hasMoreis true and verify theusageModefilter. See registration pagination. - 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.
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
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.
A Channel Handle Is Rejected
Channel creation reports an invalid handle.
The handle might exceed 64 characters or contain unsupported characters.
- Use no more than 64 letters, numbers, hyphens, or underscores. Radio normalizes the handle to lowercase; don't confuse it with the display name.
- 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.
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
- 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.
- For a WebSocket client, refresh authorized channel-user lists named by
PRESENCE_UPDATE.affectedChannels. Don't use the optionalchannelfield as a complete membership list. Follow presence monitoring. - 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
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
- 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.
- Restore the required live subscriptions and confirm that the mobile audio path is ready.
- Follow readiness reporting. Use the server-advertised renewal interval, inspect acknowledgments, and report not ready when audio becomes unavailable.
- 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
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.
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
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
- Verify that you joined and are listening to the intended channel. Check the transmit target before speaking. See channel actions.
- 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.
- Ask a Radio administrator to verify your permissions and channel access. Priority Talk requires
radio.talk.priority.highas well as normal talk permission. - 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
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.
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
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
- 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.
- 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.
- For Messaging unavailable, ask a Radio administrator to verify your permissions and channel access.
- 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.
- 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
- For No activity yet, verify that you selected the intended channel. The loaded result is empty; this message isn't an instruction to join.
- For Activity unavailable, have a Radio administrator verify your permissions and applicable channel access. Joining isn't a substitute for authorization.
- For Activity could not be loaded, review the error and check your connection, then select Try again.
- 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.
- 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
- 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.
- Clear the text in Find in transcript, or select Close find, to show all loaded entries.
- If the entry is loaded, search again using part of its sender's name or message text. Capitalization doesn't affect the results.
- 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
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.
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.
- For your own transmissions, review Transcribe my transmissions under Audio in Radio settings. Your preference doesn't control another sender's transcription.
- If transcription is enabled but the entry reports a processing error, follow the processing guidance.
- 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
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.
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.
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.
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.
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.
- Use arrow keys to move to the cell, then press Enter or F2 to reach its controls.
- 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
- 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.
- If browser access was denied, allow location access in the site's browser permissions, and then turn sharing off and on again.
- 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.
- 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.
- 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
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
- 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.
- 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. - 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
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
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.
- Verify the channel name, encoded as one path segment, and the read or manage permission in geofence REST operations.
- Check coordinates and send
radiusin the PUT body, not the response propertyradiusMeters. Include all settings you intend to retain in a replacement. - Inspect the JSON
type, even after HTTP200. For deletion,ERRORcan mean no boundary exists for the accessible channel. Read current state before retrying. - 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.
- For Radio integration, use the published REST API and WebSocket API directly.
- 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
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
- Verify the request URL, path parameters, and resource identifiers against the supported REST operation.
- Don't use the response to determine whether the requested resource exists.
- 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.
- Correct the identifier or authorization condition before retrying. Don't repeat the unchanged request.
- 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
- 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/radioare incorrect. See URL construction. - Verify the authentication method and credential placement for the browser, native, or API client. For a bearer connection, send
AUTHafter the socket opens and wait forAUTH_SUCCESS. See authentication. - Verify that the Identity Domain user is active and the corresponding Radio user is enabled.
- 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.
- 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
- 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 receivesAUTH_ERRORafter sending that message, stop sendingAUTH; the accepted browser session remains unchanged. - 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
Authorizationheader. - For initial bearer authentication, send
AUTHand wait forAUTH_SUCCESSbefore sending a Radio operation. APONGresponse doesn't confirm authentication. - 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. - After
AUTH_SUCCESS, sendWHO_AM_Iand 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
- Send the operation as one valid JSON object in a WebSocket text message.
- Use a customer operation listed in message families. Don't send undocumented service diagnostic message types.
- Compare every property with the operation topic's parameter table, required values, constraints, and request example.
- Use binary WebSocket messages only for audio packets after a valid talk-floor grant and
START. - 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
- Use the returned reason and code to identify the denial. For
PERMISSION_DENIED, verify the user's permissions includeradio.channel.subscribe. - For
ACL_DENIED, verify the user's applicable channel access. SendLIST_ALL_CHANNELSto verify that the target channel is visible; a hidden channel doesn't appear unless the user has access. - Verify the exact channel name.
- For a portable
SUBSCRIBErequest, supply exactly one channel selector and prefer thechannelsarray. - Wait for
SUBSCRIBEDand verify that the target channel'ssubscribedresult istrue. - Send
LIST_CHANNELSto 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
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
- Stop sending binary audio when the server returns
TOKEN_INVALIDorERROR, or sendsINTERRUPTED,TOKEN_EXPIRED, orTRANSMISSION_TIMEOUT. - Verify a successful channel subscription, send
REQUEST_TALK, and continue only afterGRANTED. - Send
STARTwith the audio properties used by the encoder. Begin binary audio only after the WebSocket client reports that it successfully sentSTART. - Send each encoded audio packet as one unframed binary WebSocket message and stay within the documented audio-session limit. See sending audio.
- 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
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
- Send
SUBSCRIBE_PRESENCEand wait forPRESENCE_SUBSCRIBEDbefore relying on later events. - Send
GET_PRESENCEto establish a current visible baseline. Presence results are limited to the authenticated Radio user's Identity Domain. - Send
PINGand confirmPONGbefore treating an interval without updates as a connection failure. - After reconnecting, send
SUBSCRIBE_PRESENCEagain 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
- 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.
- Send
WHO_AM_Iand verify the identity and state on the new connection. - Send
SUBSCRIBEfor each required channel, wait for successful results, and useLIST_CHANNELSto verify live membership. - If the client monitors presence, send
SUBSCRIBE_PRESENCEagain and wait forPRESENCE_SUBSCRIBED. - 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
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.
- Use the returned
serviceEndpointand appendv1/healthorv1/pingonce. See diagnostics. - 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.
- 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.