Context
In multi-service architectures, each service may be scoped to its own LangSmith workspace via LANGSMITH_WORKSPACE_ID. When one service needs to submit feedback for a trace that lives in a different workspace, the create_feedback() call will succeed without errors but the feedback will never appear -- because all API requests are routed to the workspace the client is configured for.
Answer
To send feedback to a run in a different workspace, create a dedicated Client instance per workspace using an org-scoped API key that has access to all relevant workspaces.
Avoid mutating workspace_id on a shared client instance at runtime -- this can cause race conditions when multiple requests are in-flight and may also interfere with LangGraph's internal tracing client.
1. Obtain an org-level API key with access to all target workspaces.
2. At startup, initialize one Client per workspace:
from langsmith import Client
clients = {
"workspace_a": Client(api_key=ORG_API_KEY, workspace_id="<WORKSPACE_A_ID>"),
"workspace_b": Client(api_key=ORG_API_KEY, workspace_id="<WORKSPACE_B_ID>")
}3. When submitting feedback, use the client that matches the workspace where the target trace lives:
clients["workspace_b"].create_feedback(
run_id=run_id,
key="user_score",
score=1,
)Sources
- [Log traces to a project -- Generic cross-workspace tracing](https://docs.langchain.com/langsmith/log-traces-to-project#generic-cross-workspace-tracing)
- [LangSmith Client API reference -- workspace_id](https://reference.langchain.com/python/langsmith/observability/sdk/client/#langsmith.client.Client.workspace_id)