01-15-2026 09:17 AM
I'm working on an analysis automation and starting with understanding the following example: https://github.com/ni/systemlink-server-examples/blob/master/jupyter/analysis-automation/BasicExampl...
However, when I attempt to execute the following chunk:
data_links = ni_analysis_automation["data_links"]
file_ids = [d["fileId"] for d in data_links]
file_ids = file_ids[0:40]
file_infos = await metadata_api.get_multiple_file_info(tdmreader.FileList(file_ids))
I receive an error on the last line:
HTTP response body: {"error":{"name":"TDMReader.DataFinderError","code":-253520,"message":"DataFinder responded with error: 'con 'c6' is not valid for this user'.","args":["con 'c6' is not valid for this user"],"innerErrors":[]}}
This happens regardless of whether the jupyter notebook is run from the hub, or if this notebook is executed via an analysis trigger. The trigger is set up to run with Advanced Analysis Privileges.
If I attempt to open the same file via diadem DFS it works no problem.
Just in case, here's the full code I have in my notebook when executed via trigger:
import os
import requests
import scrapbook as sb
import systemlink.clients.nitdmreader as tdmreader
metadata_api = tdmreader.MetadataApi()
data_api = tdmreader.DataApi()
# Retrieve environment variables
systemlink_uri = os.getenv("SYSTEMLINK_HTTP_URI")
systemlink_api_key = os.getenv("SYSTEMLINK_API_KEY")
cert_path = os.getenv("SYSTEMLINK_HTTPS_CERT_PATH")
data_links = ni_analysis_automation["data_links"]
file_ids = [d["fileId"] for d in data_links]
tdmreader.FileList(file_ids)
print(file_ids) # prints the expected dfs:/ paths for the triggered file
file_infos = await metadata_api.get_multiple_file_info(tdmreader.FileList(file_ids))
Anyone have suggestions?