An Azure event routing service designed for high availability, consistent performance, and dynamic scale.
Hi @EliT
Thank you for reaching out to Microsoft Q&A
Event Grid requires a SessionId when delivering to a session‑enabled queue otherwise, the portal/ARM call often surfaces only “Internal error”. Either disable sessions on the queue or add a Delivery Property for SessionId in the event subscription creation portal - Delivery properties - add SessionId with a static value ARM/CLI - delivery properties block.
Assign Azure Service Bus Data Sender at the namespace scope as well, you can keep the queue‑level assignment just add namespace‑level
az role assignment create \
--assignee <xxxxxxx> \
--role "Azure Service Bus Data Sender" \
--scope /subscriptions/<xxxxx>/resourceGroups/<xxxx>/providers/Microsoft.ServiceBus/namespaces/<xxxxx>
Your namespace shows defaultAction: Allow and trustedServiceAccessEnabled: false. With Allow, the “trusted services” bypass isn’t required.
Toggle trusted services bypass to true (even though Allow) and re‑apply:
az servicebus namespace network-rule-set update \
--resource-group xxxxxxxx \
--namespace-name xxxxxxxxx \
--trusted-service-access-enabled true
Your issuer and subject UAMI clientId look right. If the enterprise app (Vega) wasn’t properly consented or if there’s a stale SP, the exchange can fail without a clear portal error.
Re‑generate the FIC delete & recreate to rule out hidden characters.
In Tenant B, check Entra sign‑in logs filtered to the Vega app at the timestamp of the creation attempt you should see token exchange entries. Any aud/iss/sub mismatch will be explicit there.
Confirm the Vega app is multi‑tenant, and the Service Principal exists in Tenant B, you already have the SP id from the role assignment.
You can fetch the internal error from your Operation ID, by using the Rest API below:
# Replace with Tenant A subscription where you ran the create
az rest --method get \
--url "https://management.azure.com/subscriptions/xxxxx/providers/Microsoft.EventGrid/operationsStatus/xxxxxxxxxb?api-version=2022-06-15"
You can recreate the subscription using azure cli again:
# IDs
SB_QUEUE_ID="/subscriptions/xxxxx/resourceGroups/xxxxxx/providers/Microsoft.ServiceBus/namespaces/xxxxxx/queues/xxxxx"
UAMI_ID="/subscriptions/xxxxx/resourceGroups/xxxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/xxxxx"
SYSTEM_TOPIC_ID="/subscriptions/xxxx/resourceGroups/xxxxx/providers/Microsoft.EventGrid/systemTopics/xxxxxx"
Client_Id="xxxxxxx"
# If your queue uses sessions, set a SessionId delivery property
SESSION_ID="xxxxxx" # choose any static string
# Create the subscription
az eventgrid event-subscription create \
--name xxxxx \
--source-resource-id "xxxxxx" \
--endpoint-type servicebusqueue \
--endpoint "xxxxxx" \
--delivery-identity userassigned \
--delivery-identity-resource-id "xxxx \
--delivery-identity-endpoint-type servicebusqueue \
--delivery-identity-federated-credential-application-id "xxxxxx" \
--delivery-properties "key=SessionId value=xxxxxx" # <-- add only if queue has sessions
Ensure the DL Storage grants the delivery identity Storage Blob Data Contributor. Missing DL permissions cause creation errors.