{"record":{"id":"eb050ffbb1c40982","repo":"istio/istio","slug":"not-implemented-on-this-platform-eb050f","errorCode":null,"errorMessage":"not implemented on this platform","messagePattern":"not implemented on this platform","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cni/pkg/iptables/iptables_unspecified.go","lineNumber":25,"sourceCode":"// You may obtain a copy of the License at\n//\n//\thttp://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\npackage iptables\n\nimport (\n\t\"errors\"\n\n\t\"istio.io/istio/cni/pkg/config\"\n)\n\nfunc AddInpodMarkIPRule(cfg *config.AmbientConfig) error {\n\treturn errors.New(\"not implemented on this platform\")\n}\n\nfunc DelInpodMarkIPRule(cfg *config.AmbientConfig) error {\n\treturn errors.New(\"not implemented on this platform\")\n}\n\nfunc AddLoopbackRoutes(cfg *config.AmbientConfig) error {\n\treturn errors.New(\"not implemented on this platform\")\n}\n\nfunc DelLoopbackRoutes(cfg *config.AmbientConfig) error {\n\treturn errors.New(\"not implemented on this platform\")\n}\n","sourceCodeStart":7,"sourceCodeEnd":39,"githubUrl":"https://github.com/istio/istio/blob/8dc789c5cf17517c64e3c36cb3288230f149dfae/cni/pkg/iptables/iptables_unspecified.go#L7-L39","documentation":"validateHub (validation.go:388-398) checks spec.hub by constructing the reference '<hub>/pilot' and parsing it with go-containerregistry's name.NewRepository. The hub must be a valid OCI repository path: fully lowercase, no whitespace, no tag or digest components, valid DNS-style segments. Any violation returns 'bad hub: <parser detail>'.","triggerScenarios":"spec.hub values like 'gcr.io/MyOrg' (uppercase), 'docker.io/org:latest' (tag smuggled into the hub), a hub with spaces or a trailing slash, or a repository segment using invalid characters.","commonSituations":"Private registries with mixed-case project names (common on Harbor/GCR); air-gapped mirror misconfigurations; users pasting a full image reference into the hub field instead of just the registry/path prefix.","solutions":["Lowercase the entire hub and strip any ':tag' or '@digest' suffix - those belong elsewhere in the image spec","Verify the resulting reference resolves: run a manifest inspect (docker/crane) on '<hub>/pilot' from the same network","Registry ports are legal in the form host:5000/path - keep that shape if you use one"],"exampleFix":"# before\nhub: gcr.io/MyOrg\n# after\nhub: gcr.io/myorg\n","handlingStrategy":"validation","validationCode":"if _, err := name.NewRepository(hub + \"/pilot\"); err != nil {\n\treturn fmt.Errorf(\"hub %q invalid: %w\", hub, err)\n}","typeGuard":null,"tryCatchPattern":"validateHub returns a plain error; check err != nil and wrap 'bad hub:' output - the go-containerregistry detail explains exactly which character class failed.","preventionTips":["Enforce lowercase-only registry paths in the repo that stores IstioOperator manifests","Never paste a full image reference into hub - split hub vs tag before committing","Smoke-test private hubs with a manifest inspect of <hub>/pilot from the cluster network"],"tags":["istio","docker-registry","image-reference","validation","operator"],"backgroundTag":null,"analyzedSha":"8dc789c5cf17517c64e3c36cb3288230f149dfae","analyzedAt":"2026-08-15T15:16:55.434Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}