theonedev/onedev · error · ConversionException

Password and its confirmation should be identical.

Error message

Password and its confirmation should be identical.

What it means

ConfirmativePasswordPropertyEditor.convertInputToValue compares the two password fields; when they differ it raises a Wicket ConversionException (localized message) so the form re-renders with the error instead of saving a mistyped password.

Solutions

  1. Retype the password identically in both fields.
  2. Clear autofilled fields and enter the password manually in both boxes.
  3. If only changing/not changing a password, leave both fields empty.

Example fix

// before
input="pw1"; inputAgain="pw2";
// after
input="pw1"; inputAgain="pw1";
Defensive patterns

Strategy: validation

Validate before calling

function canSubmit(pwd, confirm){ return (pwd||confirm) ? pwd === confirm : true; }

Prevention

When it happens

Trigger: input != inputAgain after conversion, or input is null but inputAgain is non-null (only confirmation typed).

Common situations: Typos in one of the two password boxes; user fills only the confirm field; browser autofill filling one field only.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06). Data as JSON: /api/errors/c53b0be9d757ab63. Report an issue: GitHub.

Appendix: source

Thrown at server-core/src/main/java/io/onedev/server/web/editable/password/ConfirmativePasswordPropertyEditor.java:74

			
		});
		inputAgain.add(new OnTypingDoneBehavior() {

			@Override
			protected void onTypingDone(AjaxRequestTarget target) {
				onPropertyUpdating(target);
			}
			
		});
	}

	@Override
	protected String convertInputToValue() throws ConversionException {
		if (input.getConvertedInput() != null) {
			if (inputAgain.getConvertedInput() == null)
				throw new ConversionException(_T("Please confirm the password."));
			else if (!input.getConvertedInput().equals(inputAgain.getConvertedInput()))
				throw new ConversionException(_T("Password and its confirmation should be identical."));
			else
				return input.getConvertedInput();
		} else if (inputAgain.getConvertedInput() != null) {
			throw new ConversionException(_T("Password and its confirmation should be identical."));
		} else {
			return input.getConvertedInput();
		}
	}

	@Override
	public boolean needExplicitSubmit() {
		return true;
	}

}

View on GitHub (pinned to d44925c47c)