Error when placing appkey into their code

Customer successfully makes the key from APPKEY and places into their code, but getting below errors. Reference the attached email/screenshots from customer. What could be the issue here?

Status code 400: Bad request on handshake url http://localhost:9005/api/handshake {"code" :400, "message" : "application key is not valid.", "stack" : "error"

Error on handshake url http://localhost:9005/api/handshake

Tagged:

Answers

  • Hi @dave.obrien ,

    The error message indicates that app key used in the code is invalid. However, with the application key provided, I can open session and retrieve the data properly. Could you please ask the customer to try restart their machine and Workspace application and try running the code again. Then please let me know if the issue still persists.

    image.png

    Plus, please let me add that the library recommended to be used is the LSEG Data Library, which is the latest version of the Data Library. More info can be found in article Essential Guide to the Data Libraries - Generations of Python library (EDAPI, RDP, RD, LD) | Devportal

  • Customer came back and said this did not work. (Reference screenshot too)

    The code your dev shared worked when I tested it in a separate file. However, when I run the actual program, I’m still getting the same error:

    “Session is not opened. Can’t send any request.”

    I’ve attached a screenshot for reference.

    image.png
  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @dave.obrien

    Please enable the debug log in the library by using the following code before opening a session.

    config = ld.get_config()
    config.set_param("logs.transports.file.enabled", True)
    config.set_param("logs.transports.file.name", "lseg-data-lib.log")
    config.set_param("logs.level", "debug")
    ld.open_session(app_key = ''<app_key>") …

    This code will generate the lseg-data-lib.log file. Before sharing it, please ensure any private information is removed. Once shared, we can analyze the log to help identify the issue.

  • @Jirapongse

    Customer enabled the log file and it's attached for your reference. Still not working for him.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @dave.obrien

    The log looks okay. The app key is correct and it can get a token.

  • @Jirapongse so what do you suggest for this customer? They still cannot get the data properly and customer support is not helping here.

  • Hi @dave.obrien ,

    Based on the log, the session can be opened properly.

    If the customer still cannot get the data, could you please ask them to provide the log on the retrieve data step? because the log provided is only the open session part and there're no error shown, which means the session is opened properly.

  • Hi @dave.obrien

    Did the client create a new Python virtual environment for the Data Library or reuse existing environment (share with other Python projects)?

    I create a new Python virtual environment using venv (see Python Virtual Environments: A Primer and Creating a Python Virtual Environment with venv for more details) . The code runs fine and can connect to Workspace desktop application.

    code.png
  • @wasin_w2 Customer said he created and activated a virtual environment for the project.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    The app_key in the 20250805-1228-16120-lseg-data-lib.log is different from the app_key in the Log File.txt.

    image.png
  • @Jirapongse

    Customer apologized for the mix-up on the logs, etc. He said he updated the log file with the correct updated app key and the print statement is working. However, he's still getting the same error “ValueError: Session is not opened. Can't send any request.” Reference attached log.

    lido_error.jpg
  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @dave.obrien

    I checked the log and could not find any errors. It could send a request message and retrieve a response properly.

    [2025-08-06T12:32:48.859505-07:00] - [sessions.desktop.workspace.0] - [INFO] - [9608 - MainThread] - [_get_adc_data] - [get_adc_data] - Requesting ['TR.GICSSECTOR'] for ['AVGO.O']
    [2025-08-06T12:32:48.860901-07:00] - [sessions.desktop.workspace.0] - [DEBUG] - [9608 - MainThread] - [http_service] - [build_request] - HTTP Request id 2
    url = http://localhost:9000/api/rdp/data/datagrid/beta1/
    method = POST
    headers = {'request-timeout': '20', 'x-tr-applicationid': 'LD-PYTHON-LIB', 'Content-Type': 'application/json', 'Authorization': 'Bearer <token>'}
    json = {'universe': ['AVGO.O'], 'fields': ['TR.GICSSECTOR']}


    [2025-08-06T12:32:51.582593-07:00] - [sessions.desktop.workspace.0] - [DEBUG] - [9608 - MainThread] - [http_service] - [request] - HTTP Response id 2
    status_code = 200
    text = {"links":{"count":1},"variability":"","universe":[{"Instrument":"AVGO.O","Company Common Name":"Broadcom Inc","Organization PermID":"5060689053","Reporting Currency":"USD"}],"data":[["AVGO.O","Information Technology"]],"messages":{"codes":[[-1,-1]],"descriptions":[{"code":-1,"description":"ok"}]},"headers":[{"name":"instrument","title":"Instrument","type":"string","description":"The requested Instrument as defined by the user."},{"name":"TR.GICSSector","title":"GICS Sector Name","type":"string","description":"Primary Global Industry Classification Standard (GICS) Sector Description. GICS Classifies companies with increasing granularity by Sector, Industry Group, Industry and Sub-Industry."}]}