title: Swagger Resolver error, Could not resolve reference:
body: <p>I'm setting up a new asp.net core 3.1 project, exposing a RESTful API in <a href="https://www.hl7.org/fhir/" rel="noreferrer">FHIR</a> format, which is a format extending JSON.<br>
  I'd like to make a simple UI available with <a href="https://swagger.io/tools/swagger-ui/" rel="noreferrer">SwaggerUI</a>. That's where I've got an issue that errors are being shown.</p>
  
  <p>When launching SwaggerUI, there are no errors. When expanding the single available POST request, these errors show up:
  <a href="https://i.stack.imgur.com/TQENi.png" rel="noreferrer"><img src="https://i.stack.imgur.com/TQENi.png" alt="enter image description here"></a></p>
  
  <p>Full list:</p>
  
  <pre><code>Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.parameter.items.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.parameter.items.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.idElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.idElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.meta.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.meta.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.implicitRulesElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.implicitRulesElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.languageElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.languageElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.identifier.properties.assigner.properties.identifier.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.identifier.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.identifier.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.typeElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.typeElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.timestampElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.timestampElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.totalElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.totalElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.link.items.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.link.items.properties.modifierExtension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.link.items.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.modifierExtension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.signature.properties.who.properties.identifier.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.signature.properties.onBehalfOf.properties.identifier.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.signature.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.signature.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.nameElement.properties.extension.items.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.nameElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.nameElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.value.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.value.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.resource.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.resource.properties.idElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.part.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.parameter.items.properties.modifierExtension.items.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.meta.properties.profileElement.items.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.meta.properties.profileElement.items.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.meta.properties.security.items.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.application/json.schema.properties.meta.properties.security.items.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.parameter.items.properties.modifierExtension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.meta.properties.security.items.properties.userSelectedElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.requestBody.content.text/json.schema.properties.meta.properties.security.items.properties.userSelectedElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.useElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.useElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.type.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.type.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.period.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.period.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.assigner.properties.identifier.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.assigner.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.identifier.properties.assigner.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.search.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.search.properties.modifierExtension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.search.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.request.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.request.properties.modifierExtension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.request.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.response.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.response.properties.modifierExtension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.entry.items.properties.response.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.signature.properties.dataElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.text/plain.schema.properties.signature.properties.dataElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.identifier.properties.period.properties.startElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.identifier.properties.period.properties.startElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.search.properties.modeElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.search.properties.modeElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.search.properties.scoreElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.search.properties.scoreElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.request.properties.methodElement.properties.extension.items.properties.extension.items.$ref
  Could not resolve reference:
  Resolver error at paths./Bundle/$analyze.post.responses.200.content.application/json.schema.properties.entry.items.properties.request.properties.methodElement.properties.children.items.properties.children.items.$ref
  Could not resolve reference:
  </code></pre>
  
  <p>The controller method:</p>
  
  <pre><code>    [HttpPost("$analyze")]
      public async Task&lt;ActionResult&lt;Bundle&gt;&gt; Analyze([FromBody]Parameters parameters)
      {
          [...]
          return Ok();
      }
  </code></pre>
  
  <p>The input (<code>Parameters</code>) and output (<code>Bundle</code>) parameters are objects contained in Hl7.Fhir.R4 (<a href="https://www.nuget.org/packages/Hl7.Fhir.R4/" rel="noreferrer">nuget</a>, <a href="https://github.com/FirelyTeam/fhir-net-api" rel="noreferrer">source</a>)</p>
  
  <p>Following packages are being used:<br>
  <a href="https://i.stack.imgur.com/wrebK.png" rel="noreferrer"><img src="https://i.stack.imgur.com/wrebK.png" alt="enter image description here"></a></p>
  
  <p>swagger.json (truncated, as it was too long to be posted):</p>
  
  <pre><code>{
    "openapi": "3.0.1",
    "info": {
      "title": "Analyzer",
      "version": "v1"
    },
    "paths": {
      "/Bundle/$analyze": {
        "post": {
          "tags": [
            "Bundle"
          ],
          "parameters": [],
          "requestBody": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Parameters"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Parameters"
                }
              },
              "application/*+json": {
                "schema": {
                  "$ref": "#/components/schemas/Parameters"
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Success",
              "content": {
                "text/plain": {
                  "schema": {
                    "$ref": "#/components/schemas/Bundle"
                  }
                },
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/Bundle"
                  }
                },
                "text/json": {
                  "schema": {
                    "$ref": "#/components/schemas/Bundle"
                  }
                }
              }
            }
          }
        }
      }
    },
    "components": {
      "schemas": {
        "ResourceType": {
          "enum": [
            "Account",
            "ActivityDefinition",
            "AdverseEvent",
            "AllergyIntolerance",
            "Appointment",
            "AppointmentResponse",
            "AuditEvent",
            "Basic",
            "Binary",
            "BiologicallyDerivedProduct",
            "BodyStructure",
            "Bundle",
            "CapabilityStatement",
            "CarePlan",
            "CareTeam",
            "CatalogEntry",
            "ChargeItem",
            "ChargeItemDefinition",
            "Claim",
            "ClaimResponse",
            "ClinicalImpression",
            "CodeSystem",
            "Communication",
            "CommunicationRequest",
            "CompartmentDefinition",
            "Composition",
            "ConceptMap",
            "Condition",
            "Consent",
            "Contract",
            "Coverage",
            "CoverageEligibilityRequest",
            "CoverageEligibilityResponse",
            "DetectedIssue",
            "Device",
            "DeviceDefinition",
            "DeviceMetric",
            "DeviceRequest",
            "DeviceUseStatement",
            "DiagnosticReport",
            "DocumentManifest",
            "DocumentReference",
            "DomainResource",
            "EffectEvidenceSynthesis",
            "Encounter",
            [...]
          ],
          "type": "string"
        },
        "ElementValue": {
          "type": "object"
        },
        "Base": {
          "type": "object",
          "properties": {
            "typeName": {
              "type": "string",
              "nullable": true,
              "readOnly": true
            },
            "children": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Base"
              },
              "nullable": true,
              "readOnly": true
            },
            "namedChildren": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ElementValue"
              },
              "nullable": true,
              "readOnly": true
            },
            "userData": {
              "type": "object",
              "additionalProperties": {
                "type": "object"
              },
              "nullable": true,
              "readOnly": true,
              "deprecated": true
            }
          }
        },
        "Element": {
          "type": "object",
          "properties": {
            "typeName": {
              "type": "string",
              "nullable": true,
              "readOnly": true
            },
            "children": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Base"
              },
              "nullable": true,
              "readOnly": true
            },
            "namedChildren": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ElementValue"
              },
              "nullable": true,
              "readOnly": true
            },
            "elementId": {
              "type": "string",
              "nullable": true
            },
            "extension": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Extension"
              },
              "nullable": true
            },
            "userData": {
              "type": "object",
              "additionalProperties": {
                "type": "object"
              },
              "nullable": true,
              "readOnly": true,
              "deprecated": true
            }
          }
        },
        "Extension": {
          "type": "object",
          "properties": {
            "typeName": {
              "type": "string",
              "nullable": true,
              "readOnly": true
            },
            "url": {
              "type": "string",
              "nullable": true
            },
            "value": {
              "$ref": "#/components/schemas/Element"
            },
            "children": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Base"
              },
              "nullable": true,
              "readOnly": true
            },
            "namedChildren": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ElementValue"
              },
              "nullable": true,
              "readOnly": true
            },
            "elementId": {
              "type": "string",
              "nullable": true
            },
            "extension": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Extension"
              },
              "nullable": true
            },
            "userData": {
              "type": "object",
              "additionalProperties": {
                "type": "object"
              },
              "nullable": true,
              "readOnly": true,
              "deprecated": true
            }
          }
        },
        [...]
  </code></pre>
  
  <p>When testing the function, everything works fine.</p>
  
  <p>What is SwaggerUI trying to tell me and how can I fix these errors? Any hint would be appreciated</p>