paascloud/paascloud-master · error · TpcBizException

GL99990002

GL99990002

Error message

GL99990002

What it means

GL99990002 (platform generic remote-call-failure error) is thrown by OpcRpcService.queryMessageListWithPage when the Feign call to opcMqMessageFeignApi.queryMessageListWithPage returns a null Wrapper. Null indicates the RPC to the OPC service produced no response envelope (service unavailable, timeout, or null-returning fallback), so it is converted to a TpcBizException.

Solutions

  1. Verify the OPC service is running and registered in the service registry under the expected name.
  2. Look for the root Feign/ribbon exception in logs around the null result (timeout vs connection refused).
  3. Replace null-returning fallbacks with explicit error Wrappers so failures are distinguishable.
  4. Reduce query window/add pagination to keep the downstream call under timeout thresholds.
  5. Retry transient failures; alert on repeated occurrences of this error code.

Example fix

// before: null result crashes the caller path
Wrapper<PageInfo<MqMessageVo>> w = opcRpcService.queryMessageListWithPage(dto);
// after: catch the platform error and degrade
try {
    return opcRpcService.queryMessageListWithPage(dto).getResult();
} catch (TpcBizException e) {
    log.warn("OPC query failed, serving cached/empty result", e);
    return Collections.emptyList();
}
Defensive patterns

Strategy: try-catch

Try / catch

try {
    Wrapper<PageInfo<MqMessageVo>> w = opcRpcService.queryMessageListWithPage(dto);
    return w.getResult();
} catch (TpcBizException e) {
    if (e.getCode() == 99990002L) {
        log.warn("OPC RPC failed — using fallback page");
        return emptyPage();
    }
    throw e;
}

Prevention

When it happens

Trigger: Calling OpcRpcService.queryMessageListWithPage(messageQueryDto) when opcMqMessageFeignApi returns null — downstream OPC service down/unregistered, request timeout, or fallback returning null.

Common situations: OPC service crash or redeploy during the call; wrong service name in the Feign client after renaming; load balancer can't find an instance; ribbon/timeout too aggressive for a slow query (large date range).

Related errors


AI-assisted analysis of paascloud/paascloud-master@781281a950 (2026-09-10). Data as JSON: /api/errors/cd436defe2e6affd. Report an issue: GitHub.

Appendix: source

Thrown at paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/service/OpcRpcService.java:66

	 * @return the boolean
	 */
	public boolean sendChatRobotMsg(ChatRobotMsgDto chatRobotMsgDto) {
		Wrapper<Boolean> result = dingtalkFeignApi.sendChatRobotMsg(chatRobotMsgDto);
		return result.getResult();
	}

	/**
	 * Delete expire file.
	 */
	public void deleteExpireFile() {
		opcOssFeignApi.deleteExpireFile();
	}

	public Wrapper<PageInfo<MqMessageVo>> queryMessageListWithPage(final MessageQueryDto messageQueryDto) {
		Wrapper<PageInfo<MqMessageVo>> wrapper = opcMqMessageFeignApi.queryMessageListWithPage(messageQueryDto);
		if (wrapper == null) {
			log.error("查询消息记录 失败 result is null");
			throw new TpcBizException(ErrorCodeEnum.GL99990002);
		}
		return wrapper;
	}
}

View on GitHub (pinned to 781281a950)