Known Issues
Block Reconstruction Missing Entries
Issue: Blocks reconstructed on validators have zero entries due to a Solana limitation. GitHub Issue: https://github.com/solana-labs/solana/issues/33823 Impact:- Blocks will have
entriesfield empty or zero - This only affects blocks generated on validators
- Account updates and transactions are not affected
- Use RPC methods to fetch entries separately if needed
- Subscribe to entries separately using the entries filter
- Monitor
invalid_full_blocks_totalmetric to track reconstruction failures
Setting
block_fail_action to panic will crash the plugin on block reconstruction failure. Only use this in development or testing environments.Connection Issues
Connection refused or timeout
Connection refused or timeout
Symptoms:
- Unable to connect to gRPC endpoint
- Connection timeout errors
- “Connection refused” messages
-
Verify the plugin is running:
-
Check configuration:
- Verify
grpc.addressin config.json - Ensure the address format is correct (e.g., “0.0.0.0:10000”)
- Check that validator loaded the plugin correctly
- Verify
-
Firewall rules:
-
Check validator logs:
Connection drops or intermittent disconnects
Connection drops or intermittent disconnects
Symptoms:
- Clients disconnect randomly
- Stream interrupted errors
- High
grpc_client_disconnects_totalmetric
-
Enable keepalive for load balancers:
-
Client-side ping (required for some cloud providers):
-
Check queue capacity:
- Monitor
grpc_subscriber_queue_sizemetric - Increase
channel_capacityif queues are full
- Monitor
-
Network MTU issues:
- Try reducing
max_decoding_message_size - Enable compression to reduce packet sizes
- Try reducing
TLS/SSL connection errors
TLS/SSL connection errors
Symptoms:
- SSL handshake failed
- Certificate verification errors
- “Transport error” messages
-
Verify TLS configuration:
-
Check certificate files:
-
Client certificate verification:
- Ensure client trusts the server certificate
- Use proper CA certificates
- Update client TLS configuration
Filter and Subscription Issues
Filter limits exceeded
Filter limits exceeded
Symptoms:
- “Filter limit exceeded” errors
- Subscription rejected
- High
yellowstone_grpc_subscription_limit_exceeded_totalmetric
-
Review filter limits in config.json:
-
Adjust limits based on your use case:
- Increase
maxfor more concurrent filters - Increase
account_maxfor more accounts per filter - Remove or increase limits for trusted clients
- Increase
-
Check rejected addresses:
Remove addresses from reject lists if needed.
-
Monitor subscription usage:
No data received from subscription
No data received from subscription
Symptoms:
- Subscription succeeds but no messages arrive
- Empty stream
- Only heartbeat/ping messages received
-
Verify filter configuration:
- Check account addresses are correct
- Ensure commitment level matches your needs
- Verify account/owner filters aren’t too restrictive
-
Test with broader filter:
-
Check slot status:
Ensure slots are being received from Geyser.
-
Verify validator is processing transactions:
- Check validator logs
- Verify the validator is not delinquent
- Ensure Geyser plugin is properly loaded
Slow or delayed data
Slow or delayed data
Symptoms:
- Significant lag between slot time and data arrival
- High
slot_statusvsslot_status_plugindifference - Slow message processing
-
Check message queue size:
If high (>10,000), increase processing capacity.
-
Increase Tokio worker threads:
-
Increase channel capacity:
-
Enable compression to reduce network time:
-
Check subscriber queue sizes:
Slow clients may be backing up queues.
Performance Issues
High CPU usage
High CPU usage
Symptoms:
- Plugin consuming excessive CPU
- Validator performance degraded
- High system load
-
Reduce encoder threads:
-
Disable or reduce compression:
-
Limit concurrent subscriptions:
-
Set CPU affinity to isolate plugin:
-
Monitor cache efficiency:
Low cache hit rates indicate encoding overhead.
High memory usage
High memory usage
Symptoms:
- Plugin consuming excessive memory
- Out of memory errors
- System swapping
-
Reduce channel capacities:
-
Disable replay:
-
Limit subscriptions:
-
Monitor queue sizes:
High queue sizes indicate memory pressure.
-
Reduce filter name cache:
Network bandwidth saturation
Network bandwidth saturation
Symptoms:
- Network interface at capacity
- Packet loss
- Connection timeouts
-
Enable compression:
-
Limit data sent per subscription:
- Use more specific filters
- Subscribe to fewer message types
- Use account data slices to reduce payload size
-
Monitor bandwidth per client:
-
Rate limit problematic clients:
- Identify high-bandwidth clients
- Add filter limits for specific addresses
- Consider separate gRPC endpoints for different client types
Authentication Issues
Token authentication failures
Token authentication failures
Symptoms:
- “Unauthenticated” errors
- “Invalid token” messages
- Connection rejected immediately
-
Verify x-token configuration:
-
Check client headers:
-
Test without authentication:
- Temporarily remove
x_tokenfrom config - Verify connection works
- Re-enable authentication
- Temporarily remove
Diagnostic Commands
Check Plugin Status
Debug Client Status
Monitor Real-Time Metrics
Validator Log Analysis
Getting Help
Before Reporting Issues
-
Collect diagnostic information:
- Plugin version (from Prometheus
/metrics) - Configuration file
- Relevant logs
- Prometheus metrics output
- Client error messages
- Plugin version (from Prometheus
-
Check existing issues:
- Search GitHub issues: https://github.com/rpcpool/yellowstone-grpc/issues
- Check known bugs in README
-
Test with minimal configuration:
- Use default config values
- Remove custom filters
- Test with official example clients
Reporting Bugs
When reporting issues, include:- Environment: OS, Solana version, hardware specs
- Configuration: Your config.json (redact sensitive values)
- Reproduction steps: Minimal example to reproduce the issue
- Logs: Relevant error messages and stack traces
- Metrics: Prometheus metrics output at time of issue
- Client code: If applicable, minimal client code showing the problem
Community Resources
- Documentation: https://docs.triton.one/rpc-pool/grpc-subscriptions
- GitHub Issues: https://github.com/rpcpool/yellowstone-grpc/issues
- Example Code: