{"record":{"id":"dfaa588284e2f3db","repo":"vitessio/vitess","slug":"newkeyspaceidresolverfactory-failed-v","errorCode":null,"errorMessage":"newKeyspaceIDResolverFactory failed: %v","messagePattern":"newKeyspaceIDResolverFactory failed: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"go/vt/binlog/updatestreamctl.go","lineNumber":243,"sourceCode":"\t}\n\tupdateStream.stateWaitGroup.Add(1)\n\tupdateStream.actionLock.Unlock()\n\tdefer updateStream.stateWaitGroup.Done()\n\n\tstreamCount.Add(\"KeyRange\", 1)\n\tdefer streamCount.Add(\"KeyRange\", -1)\n\tlog.Info(fmt.Sprintf(\"ServeUpdateStream starting @ %#v\", pos))\n\n\t// Calls cascade like this: binlog.Streamer->keyRangeFilterFunc->func(*binlogdatapb.BinlogTransaction)->callback\n\tf := keyRangeFilterFunc(keyRange, func(trans *binlogdatapb.BinlogTransaction) error {\n\t\tkeyrangeStatements.Add(int64(len(trans.Statements)))\n\t\tkeyrangeTransactions.Add(1)\n\t\treturn callback(trans)\n\t})\n\tbls := NewStreamer(updateStream.cp, updateStream.se, charset, pos, 0, f)\n\tbls.resolverFactory, err = newKeyspaceIDResolverFactory(ctx, updateStream.ts, updateStream.keyspace, updateStream.cell, updateStream.parser)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"newKeyspaceIDResolverFactory failed: %v\", err)\n\t}\n\n\tstreamCtx, cancel := context.WithCancel(ctx)\n\ti := updateStream.streams.Add(cancel)\n\tdefer updateStream.streams.Delete(i)\n\n\treturn bls.Stream(streamCtx)\n}\n\n// StreamTables is part of the UpdateStream interface\nfunc (updateStream *UpdateStreamImpl) StreamTables(ctx context.Context, position string, tables []string, charset *binlogdatapb.Charset, callback func(trans *binlogdatapb.BinlogTransaction) error) (err error) {\n\tpos, err := replication.DecodePosition(position)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tupdateStream.actionLock.Lock()\n\tif !updateStream.IsEnabled() {","sourceCodeStart":225,"sourceCodeEnd":261,"githubUrl":"https://github.com/vitessio/vitess/blob/01a25a7d176f94613b8d59d799f438380a8760e4/go/vt/binlog/updatestreamctl.go#L225-L261","documentation":"StreamKeyRange wraps any failure from newKeyspaceIDResolverFactory (SrvVSchema fetch, missing keyspace entry, vschema build, vindex selection) with this message. The keyrange stream could not be set up because the keyspace-id resolver could not be constructed.","triggerScenarios":"Calling UpdateStreamImpl.StreamKeyRange where the underlying factory errors: bad cell, missing SrvVSchema entry, invalid vschema, or no sharding vindex for a table.","commonSituations":"Vschema not rebuilt after changes; wrong cell/keyspace flags on the stream request; keyspace unsharded or table has no sharding vindex.","solutions":["Check the wrapped inner error for the concrete factory failure (missing keyspace, vschema build, etc.).","Rebuild SrvVSchema (RebuildKeyspaceGraph) after any vschema change.","Verify keyspace/cell parameters passed to StreamKeyRange are correct.","Confirm the streamed tables have a valid unique sharding vindex in the vschema."],"exampleFix":"// before (streaming before vschema applied)\nstreamKeyRange(ctx, kr)\n// after\nvtctldclient ApplyVSchema --keyspace=commerce vschema.json\nvtctldclient RebuildKeyspaceGraph commerce\nstreamKeyRange(ctx, kr)","handlingStrategy":"try-catch","validationCode":"// validate factory preconditions before StreamKeyRange\nsrv, err := ts.GetSrvVSchema(ctx, cell)\nif err != nil { return err }\nif _, ok := srv.Keyspaces[keyspace]; !ok { return errors.New(\"keyspace not in SrvVSchema\") }","typeGuard":null,"tryCatchPattern":"err := updateStream.StreamKeyRange(ctx, keyrange, timestamp, callback)\nif err != nil {\n\tif strings.Contains(err.Error(), \"newKeyspaceIDResolverFactory failed\") {\n\t\tlog.Error(\"keyrange stream setup failed; check vschema/topo\", slog.Any(\"error\", err))\n\t}\n\treturn err\n}","preventionTips":["Rebuild SrvVSchema after vschema changes before starting keyrange streams.","Validate keyspace/cell arguments against the topo.","Ensure all streamed tables have a valid unique sharding vindex."],"tags":["streaming","keyrange","vschema","setup"],"backgroundTag":"keyrange-stream-setup-failed","analyzedSha":"01a25a7d176f94613b8d59d799f438380a8760e4","analyzedAt":"2026-09-01T17:28:30.605Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}