The One Design-Review Question That Would Have Caught Our APIM Naming Collision
Lessons learned from a duplicate naming issue in Azure API Management and resource modeling blind spots.

Stock photo for illustration only, not from the actual event
- The error message simply stated that a property with the same name already existed.
- Azure API Management enforces globally unique display names independent of resource IDs.
- Adding an identifier scope question to design reviews prevents this root cause.
- The practical fix involved adding an idempotency lookup check before the PUT request.
The entire error message read "Property with the same name already exist," accompanied by a stuck deployment pipeline at 2 PM with no helpful stack trace or line number. The immediate instinct was to blame the apiops publisher config script, but the actual culprit was much more subtle: Azure API Management named values carry two separate identifiers where only one is strictly enforced for global uniqueness by the platform.
Specifically, there is the artifact folder-derived ID and the internal display name that APIM requires to be unique across the entire service. A named value had been manually created months earlier through the portal under a completely different ID, causing a name collision that the platform rejected. This same architectural blind spot has surfaced in three different systems this year, tracing back to identical gaps during the design review phase.

Stock photo for illustration only, not from the actual event
When design documents introduce new resources, reviewers naturally focus on scalability, failure modes, and production ownership—none of which catch identity collisions. The question that actually matters is whether a resource has multiple identifiers, which one is enforced as unique, and at what scope. Many engineers assume IDs are universally unique, but platforms frequently split identities into system keys and human-facing names, enforcing uniqueness on the field nobody is actively monitoring.
Compound identity issues frequently slip past architectural reviews because systems often allow manual creation through administration portals alongside automated pipelines. Clearly defining resource scopes and uniqueness constraints in architectural documentation bridges the gap between infrastructure-as-code deployments and manual administrative actions, preventing silent overwrites or unexpected conflict errors in production environments.
Instead of locking down the portal to block manual creation—which merely acts as governance theater—the team added an idempotency check to look up resources by name before executing any PUT requests, transforming a lengthy debugging session into an instant, self-explanatory pipeline failure.
Source: Dev.to
Found something wrong in this article? Report an issue with this article
Comments
Leave a Comment