# \[FAQ\] Bloomberg TAPI Bridge (V3): T42.BBG.IsLoggedIn fails when Terminal Connect is not on port 9000

**URL:** <https://community.interop.io/t/faq-bloomberg-tapi-bridge-v3-t42-bbg-isloggedin-fails-when-terminal-connect-is-not-on-port-9000/701>\
**Category:** Adapters\
**Tags:** FAQs\
**Created:** [November 3, 2026, 2:15pm UTC](https://community.interop.io/t/faq-bloomberg-tapi-bridge-v3-t42-bbg-isloggedin-fails-when-terminal-connect-is-not-on-port-9000/701 "2026-11-03T14:15:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![toni.petrov](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.interop.io/toni.petrov/32/17_2.png) [@toni.petrov](https://community.interop.io/u/toni.petrov)\
**Post date:** [November 3, 2026, 2:15pm UTC](https://community.interop.io/t/faq-bloomberg-tapi-bridge-v3-t42-bbg-isloggedin-fails-when-terminal-connect-is-not-on-port-9000/701/1 "2026-11-03T14:15:21Z")

</div>

## Problem

The Bloomberg TAPI Bridge (V3) appears to start, but `T42.BBG.IsLoggedIn` returns an error or `false`, while the Bloomberg Terminal is running normally.

There are two issues we noticed, both covered below:

- **Issue 1 - the adapter never reaches Terminal Connect.** Seen on io.Connect Desktop 9.9.2, before dynamic port discovery existed. Log signature: `TypeError: Failed to fetch`.

- **Issue 2 - the adapter finds the right port, but a stale endpoint is still queried.** Seen in 9.9.4, when another service occupied a port in the scanned range. Log signature: `SyntaxError: Unexpected token '<'`.

## Why this happens

Bloomberg’s Terminal Connect starts a local GraphQL server when the user logs into the Bloomberg Terminal, and stops it when the user logs off. That server does not always bind to port 9000 - it takes the **first available port in the range 9000 to 9020**. If port 9000 is already taken by another process, Terminal Connect binds to 9001, then 9002, and so on.

`TypeError: Failed to fetch` in the adapter log means the request failed before Bloomberg returned any response, which is a hint for the port problem, but but not 100% certain. If you get `TypeError: Failed to fetch`also check:

- the Bloomberg Terminal is actually running and logged in for the affected user;
- the user’s account has the licence properly configured;
- the V3 API key in the adapter’s app definition is correct (this is not the same thing as the V2 token — see below).

* * *

## How to confirm which port Terminal Connect is using

`T42.BBG.IsLoggedIn` checks connectivity by fetching Bloomberg groups, so a `groups` query can be used to check which port Terminal Connect is using. e.g. against `http://localhost:9000/terminal_connect/v3`.

## Solution

1. **Dynamic port discovery was introduced in io.Connect Desktop 9.9.4.** This resolves Issue 1 with the adapter now finding Terminal Connect on a port other than 9000.
2. **A follow-up fix resolved the second issue’s race condition.** The build could discover the correct port but keep querying the earlier one. This was fixed in a later patch and is included in io.Connect Desktop 10.0 and later.

With dynamic port discovery in place, no manual port configuration is required. The adapter scans ports 9000–9020 on the configured `"hostname"` and connects to the active Terminal Connect instance. The relevant `"bloombergConnector"` properties are documented in [Bloomberg \> TAPI Bridge \> Configuration](https://docs.interop.io/adapters/bloomberg/tapi-bridge/configuration/index.html)

* * *

> **Workarounds for versions earlier than 9.9.4**
>
> ### 1. Pin the endpoint in the app definition
> 
> If you know which port Terminal Connect uses on a given machine, set the endpoints explicitly in the adapter’s app definition. Replace `9000` in `"localEndpoint"` and `"localWebsocket"` with the correct port:
> 
> ```json
> {
> "title": "Bloomberg Adapter v3",
> "type": "window",
> "name": "bloomberg-adapter-v3",
> "hidden": true,
> "service": true,
> "runPriority": 1000,
> "allowLogging": true,
> "details": {
> "url": "file://%GDDIR%/../BloombergBridgeV3/web/index.html",
> "hidden": true
> },
> "allowMultiple": false,
> "autoStart": true,
> "customProperties": {
> "bloombergConnector": {
> "localWebsocket": "ws://localhost:9000/terminal_connect/v3",
> "localEndpoint": "http://localhost:9000/terminal_connect/v3",
> "apiKey": "api-key-for-bloomberg-terminal-graphql"
> },
> "log-level": "debug",
> "auto-discover": "true"
> }
> }
> 
> ```
> 
> This only helps when the port is known and stable. It does not solve the case where Terminal Connect picks a different port on each start.
> 
> ### 2. Create the app definition at runtime
> 
> Remove the static Bloomberg adapter app definition and build it at runtime with the discovered port:
> 
> 1. Define a script that runs early in the io.Connect Desktop [boot sequence](https://docs.interop.io/desktop/capabilities/more/features/index.html#boot_sequence), for example in the pre-SSO stage.
> 2. In that script, create the app definition with the correct port and import it into the in-memory app store using the [App Management API](https://docs.interop.io/desktop/capabilities/app-management/javascript-legacy/index.html).
> 
> ```javascript
> const definitions = [
> {
> "title": "Bloomberg Adapter v3",
> "type": "window",
> "name": "bloomberg-adapter-v3",
> "hidden": true,
> "service": true,
> "runPriority": 1000,
> "allowLogging": true,
> "details": {
> "url": "file://%GDDIR%/../BloombergBridgeV3/web/index.html",
> "hidden": true
> },
> "allowMultiple": false,
> "autoStart": true,
> "customProperties": {
> "bloombergConnector": {
> "localWebsocket": "ws://localhost:9000/terminal_connect/v3",
> "localEndpoint": "http://localhost:9000/terminal_connect/v3",
> "apiKey": "api-key-for-bloomberg-terminal-graphql"
> },
> "log-level": "debug",
> "auto-discover": "true"
> }
> }
> ];
> const mode = "merge";
> 
> const importResult = await io.appManager.inMemory.import(definitions, mode);
> 
> ```
> 
> * * *
> 
> ##

## References

- [Bloomberg \> TAPI Bridge \> Configuration](https://docs.interop.io/adapters/bloomberg/tapi-bridge/configuration/index.html)
- [Bloomberg \> TAPI Bridge \> Connection](https://docs.interop.io/adapters/bloomberg/tapi-bridge/connection/index.html)
- [io.Connect Desktop 9.9.4 changelog](https://docs.interop.io/desktop/getting-started/changelog/platform/9-9-4/index.html)
- [io.Connect Desktop 10.0 changelog](https://docs.interop.io/desktop/getting-started/changelog/platform/10-0/index.html)
