Share via

Event Grid DNS Resolution Failure for Belgium Central Region - Hostname Not Found

Olivier 0 Reputation points
2026-01-30T14:38:33.92+00:00

We are experiencing DNS resolution failures when attempting to connect to Azure Event Grid endpoints in the Belgium Central region. The issue appears to be related to the endpoint suffix numbering.

Issue Details:

  • Error Message: getaddrinfo ENOTFOUND *.belgiumcentral-0.eventgrid.azure.net
  • Region: Belgium Central
  • SDK: @azure/eventgrid (Node.js)
  • Authentication: AzureKeyCredential

Root Cause Hypothesis:

We believe we may be using an incorrect suffix (-0 instead of -1) for the Belgium Central endpoint. When attempting to correct this to -1, we still encounter DNS resolution errors.

SSL Certificate Observations:

The SSL certificate presented by Azure includes these altnames:

  • DNS:*.global-1.eventgrid.azure.net
  • DNS:*.belgiumcentral-1.eventgrid.azure.net
  • DNS:*.eventgrid.azure.net

This suggests the endpoint should use -1 suffix, but DNS resolution still fails with that pattern.

Working Regional Endpoints:

Other regions work correctly with the -1 suffix pattern:

  • West Europe: *.westeurope-1.eventgrid.azure.net
  • Germany West Central: *.germanywestcentral-1.eventgrid.azure.net
  • France Central: *.francecentral-1.eventgrid.azure.net

Questions:

  1. What is the correct endpoint suffix for Belgium Central region (-0, -1, or something else)?
  2. Is the Belgium Central Event Grid endpoint fully provisioned and available?
  3. Why does the SSL certificate include *.belgiumcentral-1.eventgrid.azure.net if DNS resolution fails?
  4. Is there a documented list of all regional Event Grid endpoints and their correct suffixes?

Code Pattern:

// Attempt 1: Using -0 suffix
const endpoint1 = "https://*.belgiumcentral-0.eventgrid.azure.net/api/events";
// Result: SSL certificate mismatch (cert expects -1)

// Attempt 2: Using -1 suffix
const endpoint2 = "https://*.belgiumcentral-1.eventgrid.azure.net/api/events";
// Result: getaddrinfo ENOTFOUND (DNS doesn't resolve)

const client = new EventGridPublisherClient(
    endpoint2,
    "EventGrid",
    new AzureKeyCredential(apiKey)
);

await client.send([{ /* event data */ }]);

Azure Event Grid
Azure Event Grid

An Azure event routing service designed for high availability, consistent performance, and dynamic scale.


1 answer

Sort by: Most helpful
  1. Andriy Bilous 12,096 Reputation points MVP
    2026-02-01T08:20:21.5866667+00:00

    Hello

    That ENOTFOUND is happening because * can’t be used as a real hostname in an HTTP request. Your OS DNS resolver is literally trying to resolve a host named * (asterisk), which will always fail.

    What you must pass to EventGridPublisherClient is the exact Topic Endpoint for your topic, which looks like:

    https://<your-topic-name>.<region>-1.eventgrid.azure.net/api/events

    …and you should fetch it from Azure, not construct it by hand. Microsoft’s doc shows getting it from the topic resource (Portal or CLI):
    https://learn.microsoft.com/en-us/azure/event-grid/post-to-custom-topic

    import { EventGridPublisherClient, AzureKeyCredential } from "@azure/eventgrid";
    
    const endpoint = process.env.EVENTGRID_TOPIC_ENDPOINT!;
    // Example value (from Azure): https://mytopic.westeurope-1.eventgrid.azure.net/api/events
    
    const client = new EventGridPublisherClient(
      endpoint,
      "EventGrid",
      new AzureKeyCredential(process.env.EVENTGRID_KEY!)
    );
    
    await client.send([{ id: "1", eventType: "test", subject: "demo", eventTime: new Date(), data: { hello: "world" }, dataVersion: "1.0" }]);
    
    

    If you replace * with your real topic name and it still says ENOTFOUND then it’s a genuine DNS/service availability issue for that region/endpoint . In that case the next check is: run nslookup <topic>.<region>-1.eventgrid.azure.net from another network/VM to confirm it’s not local DNS, and consider deploying the topic in a different region as a workaround while you open a Microsoft support ticket.


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.