pinpoint-apm/pinpoint · error · RuntimeException
RuntimeException wrapping Exception from getRawStatusCode
Error message
RuntimeException wrapping Exception from getRawStatusCode
What it means
Guard in Spring5HttpStatusProvider.getStatusCode: reading the raw status code from a reactive ClientHttpResponse threw a generic Exception (e.g. response already consumed or connection error in WebFlux); the provider wraps it in a RuntimeException to surface the failure at the interceptor.
Solutions
- Inspect the wrapped cause exception for the real failure
- Ensure the response is read before the reactive stream is consumed/cancelled
- Upgrade the spring-webflux plugin if hitting a known race reading raw status
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at agent-module/plugins/spring-webflux/src/main/java/com/navercorp/pinpoint/plugin/spring/webflux/interceptor/util/Spring5HttpStatusProvider.java:31 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/26b024bb31fca1d4.
Report an issue: GitHub.
Appendix: source
Thrown at agent-module/plugins/spring-webflux/src/main/java/com/navercorp/pinpoint/plugin/spring/webflux/interceptor/util/Spring5HttpStatusProvider.java:31
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.navercorp.pinpoint.plugin.spring.webflux.interceptor.util;
import org.springframework.http.client.reactive.ClientHttpResponse;
/**
* @author intr3p1d
*/
public class Spring5HttpStatusProvider implements HttpStatusProvider {
@Override
public int getStatusCode(Object target) {
if (target instanceof ClientHttpResponse) {
final ClientHttpResponse response = (ClientHttpResponse) target;
try {
return response.getRawStatusCode();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return -1;
}
}
View on GitHub (pinned to 744c3d3075)