Join Applications API: Errors

This article outlines error messages that might be issued when calling methods of the Join Applications API.

The errors are grouped by the action that triggers them, because most of them can be issued by more than 1 method.

Program and enrollment errors

The following errors can occur when creating a join application, accepting an invitation, approving an application, or inviting members in bulk.

PROGRAM_NOT_FOUND and PROGRAM_NOT_PUBLISHED apply only when creating a join application or inviting members in bulk. Accepting an invitation and approving an application don't validate the program's publication status.

HTTP statusError codeError messageTroubleshooting
NOT_FOUND (404)PROGRAM_NOT_FOUNDThe specified program doesn't exist.Verify programId and try again.
FAILED_PRECONDITION (428)PROGRAM_NOT_PUBLISHEDThe program isn't published.Publish the program before accepting applications or inviting members.
ALREADY_EXISTS (409)ALREADY_EXISTSA join application already exists for the specified program and member.Retrieve the existing application instead of creating another one. A member can have only 1 join application per program.
INVALID_ARGUMENT (400)MISSING_MEMBER_IDThe owner flow requires a member ID.Specify memberId when creating an application on a member's behalf.
FAILED_PRECONDITION (428)PREMIUM_PLAN_REQUIREDThe site needs a Premium plan to add more participants.Upgrade the site's plan or reduce the number of participants.
FAILED_PRECONDITION (428)PARTICIPANTS_LIMIT_EXCEEDEDThe program's participant limit has been reached.Raise the program's participant limit or remove participants before retrying.

Status transition errors

The following error can occur when approving, declining, or canceling an application, or when accepting an invitation.

HTTP statusError codeError messageTroubleshooting
FAILED_PRECONDITION (428)INVALID_JOIN_APPLICATION_STATUSThe join application isn't in the status that the requested action requires.Retrieve the application and take an action that's valid for its current status. Approving, declining, and canceling all require APPROVAL_PENDING, and accepting an invitation requires INVITED.

Retrieval errors

The following error can occur when retrieving the calling member's own application.

HTTP statusError codeError messageTroubleshooting
NOT_FOUND (404)NOT_FOUNDThe calling member has no join application for the specified program.Verify programId. Create a join application if the member hasn't applied yet.

Payment and coupon errors

The following errors can occur when preparing payment, applying or removing a coupon, or completing a payment with a free coupon.

HTTP statusError codeError messageTroubleshooting
FAILED_PRECONDITION (428)OP_APP_NOT_INSTALLEDOnline Programs isn't installed on the site.Install Online Programs before preparing payment.
FAILED_PRECONDITION (428)PP_APP_NOT_INSTALLEDPricing Plans isn't installed on the site.Install Pricing Plans before preparing a paid-plan payment.
NOT_FOUND (404)NO_PAID_PLAN_CONNECTEDNo paid plan is connected to the program.Connect an eligible paid plan to the program, then retry.
FAILED_PRECONDITION (428)INVALID_PAYMENT_STATUSThe join application's payment status doesn't permit the requested action.Retrieve the application and follow the payment flow for its current paymentStatus. Preparing payment requires PAYMENT_PENDING, PAYMENT_FAILED, or PAYMENT_CANCELED. Coupon actions require PAYMENT_IN_PROGRESS, PAYMENT_FAILED, or PAYMENT_CANCELED.
FAILED_PRECONDITION (428)MISSING_PAYMENT_ORDERNo payment order exists for the join application.Call Prepare Payment before managing a coupon or completing a free-coupon payment.
FAILED_PRECONDITION (428)COUPON_IS_ALREADY_APPLIEDA coupon is already applied to the payment order.Remove the current coupon before applying a different one.
FAILED_PRECONDITION (428)COUPON_DOES_NOT_EXISTNo coupon matches the supplied code, or the supplied coupon ID doesn't match the coupon currently applied to the join application.When applying a coupon, verify the coupon code. When removing a coupon, use the coupon ID returned by Apply Coupon or available in the join application's payment_info.coupon_id field.
FAILED_PRECONDITION (428)NO_COUPON_APPLIEDNo coupon is applied to the payment order.Apply a coupon before completing a free-coupon payment.
FAILED_PRECONDITION (428)COUPON_DOES_NOT_COVER_FULL_AMOUNTThe coupon doesn't reduce the payment total to zero.Complete the payment through the regular checkout flow.

Bulk tag-update errors

The following error can occur when updating tags for multiple join applications.

HTTP statusError codeError messageTroubleshooting
INVALID_ARGUMENT (400)EMPTY_ASSIGN_AND_UNASSIGN_LISTSNo tags were specified to assign or unassign.Specify at least 1 tag in assignTags or unassignTags.

Last updated: 24 August 2026

Did this help?