paascloud/paascloud-master · error · TpcBizException

GL99990002

GL99990002

Error message

GL99990002

What it means

GL99990002 (the platform's generic 'remote call returned null / failed' business error) is thrown by MdcRpcService.queryMessageListWithPage when the Feign call to mdcMqMessageFeignApi.queryMessageListWithPage returns null. A null Wrapper means the downstream UAC/MDC service call failed at the RPC layer (no result envelope was produced), so the service converts it into a TpcBizException.

Solutions

  1. Check whether the MDC service is up and registered under the name the @FeignClient expects.
  2. Inspect TPC logs/gateway for the underlying Feign exception (timeout, connection refused) that produced the null result.
  3. Fix any Feign fallback that swallows the real error and returns null; prefer throwing or returning an error Wrapper.
  4. Retry the query — transient network issues are a common cause.
  5. Verify the query payload (MessageQueryDto) does not cause the downstream endpoint to fail validation.

Example fix

// before: null Feign result propagates as exception
Wrapper<PageInfo<MqMessageVo>> w = mdcRpcService.queryMessageListWithPage(dto);
// after: guard and degrade gracefully
try {
    Wrapper<PageInfo<MqMessageVo>> w = mdcRpcService.queryMessageListWithPage(dto);
    return w.getResult();
} catch (TpcBizException e) {
    log.warn("MDC message query unavailable, returning empty page", e);
    return new PageInfo<>(Collections.emptyList());
}
Defensive patterns

Strategy: try-catch

Try / catch

try {
    Wrapper<PageInfo<MqMessageVo>> w = mdcRpcService.queryMessageListWithPage(dto);
    return w.getResult();
} catch (TpcBizException e) {
    if (e.getCode() == 99990002L) {
        log.warn("MDC RPC returned null — serving degraded result");
        return emptyPage();
    }
    throw e;
}

Prevention

When it happens

Trigger: Calling MdcRpcService.queryMessageListWithPage(messageQueryDto) when the Feign client for the MDC message API returns null — typically because the downstream service is down, the call timed out, or a fallback returned null.

Common situations: MDC service not registered in the registry or scaled to zero; network timeout between TPC and MDC; Feign fallback configured to return null on failure; mismatched service name in @FeignClient after a rename.

Related errors


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

Appendix: source

Thrown at paascloud-provider/paascloud-provider-tpc/src/main/java/com/paascloud/provider/service/MdcRpcService.java:41

import javax.annotation.Resource;

/**
 * The class Mdc rpc service.
 *
 * @author paascloud.net @gmail.com
 */
@Slf4j
@Service
public class MdcRpcService {
	@Resource
	private MdcMqMessageFeignApi mdcMqMessageFeignApi;

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

View on GitHub (pinned to 781281a950)