Hi @Sumit Gaur
Thanks for sharing the detailed troubleshooting, this is a very good write-up, and we appreciate you reaching out to Microsoft Q&A.
What you are seeing is possible even when a public IP check from Kudu shows the Azure Firewall PIP.
- In Service Bus Standard, network controls are IP filtering only; Trusted Services bypass is not available in Standard.
- Service endpoints/private endpoints for Service Bus are Premium-tier capabilities.
- The Service Bus firewall evaluates the client IP for each connection and rejects non-allowed IPs as unauthorized (the 401 text you shared matches this behavior).
To identify the exact IP being evaluated by Service Bus, enable and query the Service Bus VNet/IP filtering logs:
- Category: VNetAndIPFilteringLogs (or resource-specific AZMSVNetConnectionEvents)
- Fields include: IPAddress/AddressIP, Action (Accept/Deny), and Reason
If this log shows a source IP different from your expected firewall PIP, add that egress IP path to the allow list (or make egress deterministic through your firewall design).
Given your architecture, two supported patterns are:
- Stay on Standard and maintain complete/accurate IP allow-list coverage for all possible egress source IPs.
- Move Service Bus to Premium and use private networking (service endpoints/private endpoints) for deterministic network isolation.
Also validate that route-all is applied as intended (App Service/Logic App Standard docs note route-all behavior and that routed traffic is then subject to NSG/UDR).Thanks for sharing the detailed troubleshooting, this is a very good write-up.
What you are seeing is possible even when a public IP check from Kudu shows the Azure Firewall PIP.
- In Service Bus Standard, network controls are IP filtering only; Trusted Services bypass is not available in Standard.
- Service endpoints/private endpoints for Service Bus are Premium-tier capabilities.
- The Service Bus firewall evaluates the client IP for each connection and rejects non-allowed IPs as unauthorized (the 401 text you shared matches this behavior).
To identify the exact IP being evaluated by Service Bus, enable and query the Service Bus VNet/IP filtering logs:
- Category: VNetAndIPFilteringLogs (or resource-specific AZMSVNetConnectionEvents)
- Fields include: IPAddress/AddressIP, Action (Accept/Deny), and Reason
If this log shows a source IP different from your expected firewall PIP, add that egress IP path to the allow list (or make egress deterministic through your firewall design).
Given your architecture, two supported patterns are:
- Stay on Standard and maintain complete/accurate IP allow-list coverage for all possible egress source IPs.
- Move Service Bus to Premium and use private networking (service endpoints/private endpoints) for deterministic network isolation.
Also validate that route-all is applied as intended (App Service/Logic App Standard docs note route-all behavior and that routed traffic is then subject to NSG/UDR).
To confirm root cause, please correlate the failed workflow timestamp with Service Bus VNet/IP filtering deny logs and verify the exact evaluated source IP, because environments with multiple egress paths or multiple firewall public IPs can produce an IP different from the one seen in a generic outbound IP check.
Evidence
Please upvote and accept as "answer" as this helps others in the community with similar issues.
Best regards,
Andrew Taylor