alibaba/spring-ai-alibaba · warning · BizException

MISSING_PARAMS

MISSING_PARAMS

Error message

app

What it means

AppController.createApp throws BizException(ErrorCode.MISSING_PARAMS.toError("app")) when the POST request body deserializes to null. An Application object is required to create an app; a missing/empty body cannot be processed.

Source

Thrown at spring-ai-alibaba-admin/spring-ai-alibaba-admin-server-start/src/main/java/com/alibaba/cloud/ai/studio/admin/builder/controller/AppController.java:73

	/** Manager for workflow execution */
	private final WorkflowExecuteManager workflowExecuteManager;

	public AppController(AppService appService, WorkflowExecuteManager workflowExecuteManager) {
		this.appService = appService;
		this.workflowExecuteManager = workflowExecuteManager;
	}

	/**
	 * Creates a new application
	 * @param app Application details
	 * @return Created application ID
	 */
	@PostMapping()
	public Result<String> createApp(@RequestBody Application app) {
		RequestContext context = RequestContextHolder.getRequestContext();
		if (Objects.isNull(app)) {
			throw new BizException(ErrorCode.MISSING_PARAMS.toError("app"));
		}

		if (StringUtils.isBlank(app.getName())) {
			throw new BizException(ErrorCode.MISSING_PARAMS.toError("name"));
		}

		if (Objects.isNull(app.getConfig())) {
			throw new BizException(ErrorCode.MISSING_PARAMS.toError("config"));
		}

		String appId = appService.createApp(app);
		return Result.success(context.getRequestId(), appId);
	}

	/**
	 * Updates an existing application
	 * @param appId Application ID
	 * @param app Updated application details

View on GitHub (pinned to f82da0b50f)

Solutions

  1. Send a valid JSON Application object as the request body
  2. Set Content-Type: application/json on the request
  3. Validate the body is non-null before calling the API

Example fix

// before
curl -X POST http://host/app
// after
curl -X POST http://host/app -H 'Content-Type: application/json' -d '{"name":"my-app","config":{}}'
Defensive patterns

Strategy: validation

Validate before calling

if (app == null) { throw new IllegalArgumentException("application body is required"); }

Type guard

boolean hasBody(Application app) { return app != null; }

Try / catch

try { client.createApp(app); } catch (BizException e) { if ("MISSING_PARAMS".equals(e.getCode())) { /* fix request body, no retry */ } }

Prevention

When it happens

Trigger: POST /app with an empty body, no Content-Type: application/json header causing the body to not bind, or a client sending a literal null body.

Common situations: curl calls without -d or without the JSON content type; proxies stripping the body; client code passing null to the HTTP helper.

Understand the failure class

Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.

Related errors


AI-assisted analysis of alibaba/spring-ai-alibaba@f82da0b50f (2026-09-09). Data as JSON: /api/errors/7e79990e20cdbc25. Report an issue: GitHub.