Pick integrates with Prospector Studio for remote tool invocation over gRPC. This guide covers issues with the remote execution pipeline.
Tool registration fails
Symptom: Pick starts but doesn't appear in Prospector Studio's tool list.
Possible causes:
- Studio unreachable — The gRPC endpoint for Prospector Studio is down or misconfigured.
- Authentication failure — Pick's credentials are invalid or expired.
- Network issues — Firewall or DNS preventing the gRPC connection.
Debugging:
# Run with gRPC tracing
RUST_LOG=tonic=debug,pick_connector=debug cargo run -p pick-connector
Look for:
tonic::transport: connecting to studio endpoint="https://studio.example.com:443"
tonic::transport: connection failed err="dns resolution failed"
# or
pick_connector: tool registration failed err="unauthenticated"
Verify the Studio endpoint:
# Test gRPC connectivity
grpcurl -plaintext studio.example.com:443 list
Remote invocation doesn't execute
Symptom: A tool is invoked from Prospector Studio but Pick doesn't execute it.
Possible causes:
- Stale registration — Pick registered tools but the gRPC stream was interrupted.
- Tool name mismatch — The invocation uses a tool name that doesn't match Pick's registry.
- Pick process restarted — After a restart, tools must re-register.
Debugging:
RUST_LOG=pick_connector=debug cargo run -p pick-connector
Look for incoming invocation messages:
pick_connector: remote invocation received tool="port_scan" id="abc-123"
# If missing, the invocation never reached Pick
If no invocation log appears, the issue is on the Studio side or the gRPC stream is disconnected.
Studio connection drops
Symptom: Pick connects to Studio initially but the connection drops after some time.
Possible causes:
- Idle timeout — The gRPC connection was terminated due to inactivity.
- Network instability — Intermittent connectivity between Pick and Studio.
- Studio restart — The Studio server was restarted, invalidating existing streams.
Debugging:
RUST_LOG=tonic=debug,pick_connector=debug cargo run -p pick-connector
Look for reconnection attempts:
tonic::transport: connection lost, reconnecting...
pick_connector: re-registering tools with studio
Tip: Pick should automatically reconnect and re-register tools. If it doesn't, restart the Pick process.
Tool execution timeouts
Symptom: A remotely invoked tool starts but never returns a result, or Studio shows a timeout error.
Possible causes:
- Long-running tool — Some tools (e.g.,
port_scanwith large ranges,traffic_capture) take longer than the default timeout. - Tool hung — The tool subprocess is stuck (e.g., waiting for network response that will never come).
- Result too large — The tool output exceeds the gRPC message size limit.
Debugging:
# Check if the tool is still running
RUST_LOG=pick_connector::tools=debug cargo run -p pick-connector
Look for:
pick_connector::tools: tool invoked name="port_scan" params=...
# ... long gap with no completion message ...
pick_connector::tools: tool timeout name="port_scan" elapsed_ms=30000
For large port scans, consider reducing the port range or increasing concurrency limits. For traffic capture, set a reasonable packet count or duration limit.
Note: Timeouts are configured on the Studio side. If a tool legitimately needs more time, coordinate with your Studio administrator to adjust the invocation timeout.