diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c
index 7239e4c1..9879a15b 100644
--- a/src/backend/executor/execExpr.c
+++ b/src/backend/executor/execExpr.c
@@ -4299,6 +4299,13 @@ ExecInitJsonExpr(JsonExpr *jexpr, ExprState *state,
 									 jexpr->on_error->btype != JSON_BEHAVIOR_ERROR ?
 									 &jsestate->escontext : NULL,
 									 resv, resnull);
+
+		/* Jump to EEOP_JSONEXPR_COERCION_FINISH */
+		scratch->opcode = EEOP_JUMP;
+		scratch->d.jump.jumpdone = -1;	/* set below */
+		jumps_to_coerce_finish = lappend_int(jumps_to_coerce_finish,
+												state->steps_len);
+		ExprEvalPushStep(state, scratch);
 	}
 	else
 		jsestate->jump_eval_result_coercion = -1;
@@ -4306,19 +4313,6 @@ ExecInitJsonExpr(JsonExpr *jexpr, ExprState *state,
 	/* Steps for coercing JsonItemType values returned by JsonPathValue(). */
 	if (jexpr->item_coercions)
 	{
-		/*
-		 * Jump to COERCION_FINISH to skip over the following steps if
-		 * result_coercion is present.
-		 */
-		if (jsestate->jump_eval_result_coercion >= 0)
-		{
-			scratch->opcode = EEOP_JUMP;
-			scratch->d.jump.jumpdone = -1;	/* set below */
-			jumps_to_coerce_finish = lappend_int(jumps_to_coerce_finish,
-												 state->steps_len);
-			ExprEvalPushStep(state, scratch);
-		}
-
 		/*
 		 * Here we create the steps for each JsonItemType type's coercion
 		 * expression and also store a flag whether the expression is
