{"record":{"id":"eba8bd9b6b0dfcfd","repo":"GoogleContainerTools/skaffold","slug":"one-platform-returned-an-non-success-response-d","errorCode":null,"errorMessage":"one platform returned an non-success response: %d","messagePattern":"one platform returned an non-success response: (.+?)","errorType":"http","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"pkg/skaffold/instrumentation/firelog/exporter.go","lineNumber":140,"sourceCode":"\treturn nil\n}\n\nfunc sendDataPoint(name string, dp DataPoint) error {\n\tkvs := toEventMetadata(dp.attributes())\n\tkvs = append(kvs, KeyValue{Key: name, Value: dp.value()})\n\tstr, err := buildProtoStr(name, kvs)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdata := buildMetricData(str, dp.eventTime())\n\n\tresp, err := POST(fmt.Sprintf(`https://firebaselogging-pa.googleapis.com/v1/firelog/legacy/log?key=%s`, APIKey), \"application/json\", data.newReader())\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer resp.Body.Close()\n\tif resp.StatusCode != http.StatusOK {\n\t\treturn fmt.Errorf(\"one platform returned an non-success response: %d\", resp.StatusCode)\n\t}\n\n\treturn err\n}\n\nfunc buildMetricData(proto string, startTimeMS int64) MetricData {\n\treturn MetricData{\n\t\tClientInfo: ClientInfo{ClientType: \"DESKTOP\"},\n\t\tLogSource:  \"CONCORD\",\n\t\tLogEvent: LogEvent{\n\t\t\tEventTimeMS:                  startTimeMS,\n\t\t\tSourceExtensionJSONProto3Str: proto,\n\t\t},\n\t\tRequestTimeMS: startTimeMS,\n\t}\n}\n\nfunc buildProtoStr(name string, kvs EventMetadata) (string, error) {","sourceCodeStart":122,"sourceCodeEnd":158,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/instrumentation/firelog/exporter.go#L122-L158","documentation":"firelog's sendDataPoint POSTs the metric payload to the Firebase logging endpoint (firebaselogging-pa.googleapis.com). If the server responds with any status other than 200 OK, it returns \"one platform returned an non-success response: %d\" with the HTTP status code. The metric data point was not accepted by Google's logging backend.","triggerScenarios":"Metrics export attempts where the firelog POST returns a non-200 status — e.g. 400 from a malformed payload, 403/401 from API key rejection, or 429/5xx from server-side throttling/outages.","commonSituations":"Corporate proxies/firewalls intercepting the request, invalid or revoked firelog API key, Google-side service issues, or requests from blocked regions/networks.","solutions":["Check the reported status code: 4xx indicates payload/API-key problems; 5xx indicates retry later.","Verify network/proxy allows HTTPS to firebaselogging-pa.googleapis.com.","Disable skaffold metrics collection (`skaffold config set --global collect-metrics false`) — this error only affects telemetry, not skaffold functionality.","Retry later if the status is 429 or 5xx (server-side issue)."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"resp, err := http.Head(\"https://firebaselogging-pa.googleapis.com\")\nif err != nil {\n    log.Println(\"firelog endpoint unreachable; telemetry will fail\")\n}","typeGuard":null,"tryCatchPattern":"if err := sendDataPoint(dp); err != nil {\n    var he *HTTPStatusError\n    if strings.Contains(err.Error(), \"non-success response\") {\n        // backoff and retry for 429/5xx only\n    }\n}","preventionTips":["Allow egress to firebaselogging-pa.googleapis.com through proxies/firewalls","Treat telemetry failures as non-fatal and log only","Disable metrics collection in restricted networks"],"tags":["network","http","telemetry"],"backgroundTag":"http-non-200-response","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}