{"record":{"id":"3a23af68ff8542c8","repo":"grpc-ecosystem/grpc-gateway","slug":"additional-binding-in-additional-binding-not-allow","errorCode":null,"errorMessage":"additional_binding in additional_binding not allowed: %s.%s","messagePattern":"additional_binding in additional_binding not allowed: (.+?)\\.(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/descriptor/services.go","lineNumber":193,"sourceCode":"\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn b, nil\n\t}\n\n\tapplyOpts := func(opts *options.HttpRule) error {\n\t\tb, err := newBinding(opts, len(meth.Bindings))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif b != nil {\n\t\t\tmeth.Bindings = append(meth.Bindings, b)\n\t\t}\n\t\tfor _, additional := range opts.GetAdditionalBindings() {\n\t\t\tif len(additional.AdditionalBindings) > 0 {\n\t\t\t\treturn fmt.Errorf(\"additional_binding in additional_binding not allowed: %s.%s\", svc.GetName(), meth.GetName())\n\t\t\t}\n\t\t\tb, err := newBinding(additional, len(meth.Bindings))\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tmeth.Bindings = append(meth.Bindings, b)\n\t\t}\n\n\t\treturn nil\n\t}\n\n\tfor _, opts := range optsList {\n\t\tif err := applyOpts(opts); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn meth, nil","sourceCodeStart":175,"sourceCodeEnd":211,"githubUrl":"https://github.com/grpc-ecosystem/grpc-gateway/blob/a58a4436a376a4bcc7d8f10c4d4f919a8438bba9/internal/descriptor/services.go#L175-L211","documentation":"Config-validation error in loadServices' applyOpts: an HttpRule's AdditionalBindings list contains an entry that itself has AdditionalBindings. google.api.HttpRule permits only one level of additional bindings; nesting deeper is invalid, so processing of the method aborts.","triggerScenarios":"Thrown at internal/descriptor/services.go:193 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Flatten the bindings: list each additional binding at the top level of the HttpRule's additional_bindings instead of nesting.","Remove the nested additional_bindings field from the annotation."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a58a4436a376a4bcc7d8f10c4d4f919a8438bba9","analyzedAt":"2026-09-02T10:28:31.537Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T16:17:10.729Z"}