Local DNS Service on MX – unable to delete profile due to “Networks are currently assigned"

Suar_Mustafa
Here to help

Local DNS Service on MX – unable to delete profile due to “Networks are currently assigned"

Hi all,

I’m testing Local DNS Service on MX and built a small Python CLI around the Dashboard API to create/modify/delete Local DNS profiles.

When deleting a profile, I consistently get:

 

400 {"errors":["Networks are currently assigned to the profile"]}

 

There is no Dashboard UI yet to view or unassign Local DNS profile ↔ network mappings, so I have to rely 100% on the API. My script tries multiple “list/lookup” patterns to find assigned networks (handles list | dict | items[], and field variants like id | profileId) but I’m not getting any assignments back. Result: I can’t programmatically unassign, so deletion fails.

 

What I’m doing (high level):

  • Create profile (works)

  • Add A records (works)

  • Attempt profile delete → 400 “Networks are currently assigned”

  • Try to discover assignments via API (no luck)

  • Without a UI to unassign, I’m blocked

 

Questions:

  1. Is there a documented endpoint to list networks assigned to a Local DNS profile?

  2. Is there an endpoint to unassign a Local DNS profile from a network?

  3. If this is currently not exposed, is there a recommended interim workflow (e.g., delete records first, clear profile references at network scope, etc.)?

  4. Any GA/Beta notes or timelines for UI/API parity here?

 

Context:

  • Python 3.11 + requests

  • Robust response-shape handling (list/dict/items[])

  • Using org-level endpoints for profiles/records per the doc

  • Error only when deleting a profile that was previously assigned

If anyone has API examples (preferred: curl snippets) for listing/unassigning Local DNS profile assignments, that would unblock automation.

Thanks!

 

4 Replies 4
alemabrahao
Kind of a big deal
Kind of a big deal

GET /organizations/{organizationId}/appliance/dns/local/profiles/assignments

 

This returns all current profile-to-network assignments. Each item includes assignmentId, network.id, and profile.id

 

 

 

POST /organizations/{organizationId}/appliance/dns/local/profiles/assignments/bulkDelete

 

And This to unassign these networks using the bulkDelete endpoint.

 

 

I am not a Cisco Meraki employee. My suggestions are based on documentation of Meraki best practices and day-to-day experience.

Please, if this post was useful, leave your kudos and mark it as solved.
Suar_Mustafa
Here to help

Thanks for the quick reply!

That’s exactly the endpoint I’ve been using 

 

GET /organizations/{organizationId}/appliance/dns/local/profiles/assignments

and then attempting

POST /organizations/{organizationId}/appliance/dns/local/profiles/assignments/bulkDelete

The problem is: the GET call isn’t returning any assignments for the profile, even though the DELETE call for the profile itself fails with “Networks are currently assigned to the profile”. So the API seems to know it’s assigned somewhere, but the assignments query comes back empty.

Have you (or anyone else here) seen this mismatch? Could this be a bug in how assignments are being surfaced in the API?

alemabrahao
Kind of a big deal
Kind of a big deal

You can try enumerating all networks in the organization using GET /organizations/{organizationId}/networks
And then try GET /networks/{networkId}/appliance/dns/local/status
This should reveal the active profile ID even if the organization-level assignments endpoint fails.
If a match is found, POST /organizations/{organizationId}/appliance/dns/local/profiles/assignments/bulkDelete with the correct assignment ID (if recoverable), or manually remove the assignment through the network-level configuration, if possible.

I am not a Cisco Meraki employee. My suggestions are based on documentation of Meraki best practices and day-to-day experience.

Please, if this post was useful, leave your kudos and mark it as solved.
PhilipDAth
Kind of a big deal
Kind of a big deal

This sounds like it will require a support case to resolve.

Get notified when there are additional replies to this discussion.