grpc/grpc-go · error
error in serverRPCEvent method: %v
Error message
error in serverRPCEvent method: %v
What it means
Same validation as error 211 but for the config.CloudLogging.ServerRPCEvents slice. Any method string in a server event's Methods list that fails validateMethodString is wrapped as "error in serverRPCEvent method: <cause>". Root cause and remediation are identical to errors 210/211.
Source
Thrown at gcp/observability/config.go:102
if err := validateMethodString(method); err != nil {
return fmt.Errorf("invalid method string: %v, err: %v", method, err)
}
}
return nil
}
func validateLoggingEvents(config *config) error {
if config.CloudLogging == nil {
return nil
}
for _, clientRPCEvent := range config.CloudLogging.ClientRPCEvents {
if err := validateLogEventMethod(clientRPCEvent.Methods, clientRPCEvent.Exclude); err != nil {
return fmt.Errorf("error in clientRPCEvent method: %v", err)
}
}
for _, serverRPCEvent := range config.CloudLogging.ServerRPCEvents {
if err := validateLogEventMethod(serverRPCEvent.Methods, serverRPCEvent.Exclude); err != nil {
return fmt.Errorf("error in serverRPCEvent method: %v", err)
}
}
return nil
}
// unmarshalAndVerifyConfig unmarshals a json string representing an
// observability config into its internal go format, and also verifies the
// configuration's fields for validity.
func unmarshalAndVerifyConfig(rawJSON json.RawMessage) (*config, error) {
var config config
if err := json.Unmarshal(rawJSON, &config); err != nil {
return nil, fmt.Errorf("error parsing observability config: %v", err)
}
if err := validateLoggingEvents(&config); err != nil {
return nil, fmt.Errorf("error parsing observability config: %v", err)
}
if config.CloudTrace != nil && (config.CloudTrace.SamplingRate > 1 || config.CloudTrace.SamplingRate < 0) {
return nil, fmt.Errorf("error parsing observability config: invalid cloud trace sampling rate %v", config.CloudTrace.SamplingRate)View on GitHub (pinned to 03255a9237)
Solutions
- Apply the error-210 fixes to every entry under server_rpc_events.
- Validate the whole cloud_logging block (both client and server arrays) before deploying.
- Ensure Exclude + "*" is not combined in server events.
Example fix
// before
{ "cloud_logging": { "server_rpc_events": [{ "methods": ["goo.Foo/"] }] } }
// after
{ "cloud_logging": { "server_rpc_events": [{ "methods": ["goo.Foo/Bar"] }] } } Defensive patterns
Strategy: validation
Validate before calling
func validateServerRPCEvents(events []serverRPCEvents) error {
for _, e := range events {
if err := validateLogEventMethod(e.Methods, e.Exclude); err != nil {
return fmt.Errorf("server event: %w", err)
}
}
return nil
} Try / catch
if err := validateLoggingEvents(cfg); err != nil {
return fmt.Errorf("observability config: %w", err)
} Prevention
- Apply the same pattern rules to server_rpc_events as client_rpc_events.
- Validate the full cloud_logging block before deploy.
- Forbid combining "*" with Exclude.
When it happens
Trigger: A server_rpc_events entry in the observability config has an invalid method pattern (leading slash, no/extra slash, empty method, or service-position wildcard).
Common situations: Server-side logging config copy-pasted from the client side with a typo; same wire-format-vs-config-format confusion as 211.
Related errors
- invalid method string: %v, err: %v
- error in clientRPCEvent method: %v
- error parsing observability config: invalid cloud trace samp
- error parsing observability config: %v
- error reading observability configuration file %q: %v
AI-assisted analysis of grpc/grpc-go@03255a9237 (2026-08-07).
Data as JSON: /api/errors/b5ae0c2da82e6cd3.
Report an issue: GitHub.