Skip to content

Known issues by SDK version ​

Use @tv/extension-sdk 1.15.1 or later. This page is for when you cannot, or when your module was scaffolded by an older release: it lists, newest first, what each release fixed that you would otherwise run into, and what to do about it by hand. The changelog has every change; this page keeps only the ones that break a step.

An issue is one of two kinds:

  • SDK: in the CLI or the library. Upgrading removes it. npx @tv/extension-sdk runs the copy in your module's node_modules, so upgrade it there: pnpm add -w @tv/extension-sdk@^1.15.1.
  • Scaffold: in the files init-module wrote. Upgrading the SDK does not change a module that already exists, so fix the file as the table says, or scaffold again and move your code over.

Fixed in 1.15.1 ​

KindWhat goes wrongOn an older version
SDKOn Windows, login fails after you approve it in the browser: … longer than the platform limit of 2560 chars. The session is larger than Windows Credential Manager holds.Use a portal API key in TV_API_TOKEN, or set TV_SDK_TOKEN_STORE=file before login and keep it set for every later command.
SDKsandbox connect prints its tv-api URL and token as export lines. With them applied, sandbox install --sandbox looks the sandbox up on the sandbox itself, with the sandbox's token, and fails.Do not apply them in the terminal you run sandbox commands from. If you did, unset TV_API_URL TV_API_TOKEN and export your portal key again.
SDKsandbox install --sandbox=… --token=tvk_… fails with 401 when it registers the manifest: the portal key is sent to the sandbox as well.Put the portal key in TV_API_TOKEN and leave --token out.
SDKAfter any 401 or 403, sandbox install prints This is expected today: … ask for the module to be registered for you. That stopped being true on 2026-09-19.Ignore the note, and check the credential with When something is wrong.
SDKsandbox create, list and connect show the slug and organizationId only with --format=json, and create prints no sign-in line to send us.Run npx @tv/extension-sdk sandbox list --format=json and send us those two values only. The same output holds each sandbox's apiToken, which stays secret.
SDKsandbox create --help (or any sandbox <command> --help) answers Unknown flag: --help and exits 2.npx @tv/extension-sdk sandbox --help prints the usage of all of them.
ScaffoldThe standalone page (pnpm dev) goes blank as soon as the Shell calls useQuery: No QueryClient set, use QueryClientProvider to set one.Wrap the tree in src/main.tsx in a QueryClientProvider, outermost, as in Build the frontend.
Scaffoldpackage.json has no packageManager field, so a pnpm 11 installed globally runs instead of 10.18.2, and fails on a fresh @tv release with ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION.Add "packageManager": "pnpm@10.18.2" to package.json, then install again.
ScaffoldThe first pnpm install warns about peer dependencies (i18next ^25 against react-i18next 17, @tv/ui ^1.4.1 against the SDK), and pnpm lint fails with eslint: command not found.Set i18next to ^26.2.0, raise @tv/ui to ^2.2.0 or remove it if nothing imports it, and delete the lint script: pnpm typecheck is the static check.
Scaffoldinit-module --external without --scope gives the module Tango Vision's identity: an id and package name under @tv, and "Tango Vision" as the author.Scaffold again with --scope and --author (step 1), or change id and author in module-manifest.json and name in package.json by hand, keeping the module-<slug> part.

Fixed in 1.15.0 ​

KindWhat goes wrongOn an older version
ScaffoldThe federation container is named tv-module-<slug>, but the platform looks for the camelCase slug, so the shell does not find your module in its own remoteEntry.js.In vite.config.ts, set the federation name to the camelCase slug: hello for hello, workOrders for work-orders.
Scaffoldreact-router and react-router-dom are not shared, so a Shell that uses <Routes> throws inside Building OS: Cannot destructure property 'basename' of 'React.useContext(...)' as it is null.Add both to shared in vite.config.ts and to dependencies (^7.0.0), and wrap <Shell /> in src/main.tsx in a <BrowserRouter> for the standalone page.
ScaffoldThe comment at the top of src/Shell.tsx says to use PlatformContext from @tv/extension-sdk/react and "the shared axios client". The first throws inside Building OS; the second does not exist.Ignore it. Use useSelectedBuildingId() and authorizationHeader(): Calling the API from a module.
SDKgetAccessToken(), authorizationHeader() and resolveAccessToken() do not exist yet, so a module has no supported way to authenticate its API calls.Upgrade. Do not read localStorage['access_token'] instead: the sandbox shell does not write it.

Fixed in 1.14.1 ​

KindWhat goes wrongOn an older version
ScaffoldA module scaffolded by 1.14.0 does not build: "useQuery" is not exported by "__vite-optional-peer-dep:@tanstack/react-query:@tv/extension-sdk", and no remoteEntry.js is written.pnpm add -w @tanstack/react-query@^5

Before 1.14.0 ​

KindWhat goes wrongOn an older version
SDKThere is no init-module --external. The CI it generates calls private Tango Vision actions and fails outside our organisation.Upgrade, and scaffold again with --external.
SDKThere is no sandbox install, and the scaffold has no dev:remote / serve:remote scripts.Upgrade, and add the scripts by hand as in Serve your remote from your machine.
SDKsandbox create --type=university is refused with Invalid --type.Upgrade, or use office or mall.

Built on the Tango Vision platform. Questions? developers@tango.vision