Error 354 points to missing market-data permission for the requested product. Check the exchange, product, username, and API data access. Being able to place an order or see a quote elsewhere does not establish the needed data subscription.
Educational software guidance. Trading involves risk. Read the financial and information disclaimers.
Step by step
- 1 Copy the product and exchange named in the error.
- 2 Open the same contract in TWS and check its quote status.
- 3 Check Market Data Subscriptions in Client Portal for the username used by TWS.
- 4 Confirm the subscription covers the product and API use before purchasing or changing anything.
- 5 After a data access change, reconnect as instructed by IBKR and check the exact contract again.
A practical example
Suppose you can trade a future but cannot see its live API quote. The order right and the quote right are separate checks. Write down the exact product and exchange in the error. Then check the feed for the user logged in to TWS. Do not buy a stock feed just because another chart on the screen shows stocks without an error.
Screen reference

Mistake to avoid
Common questions
Are trading permissions and data permissions the same?
No. Check each separately.
Can delayed data solve every use case?
No. Availability and app support vary, and delayed data is not live data.