theonedev/onedev · error · ExplicitException

This address is intended to open issues, however the message

Error message

This address is intended to open issues, however the message looks like a reply to some other email

What it means

The issue-creation email address is only for opening new issues. If the subject starts with 're:' (case-insensitive), the message is treated as a reply, which cannot create an issue, so OneDev rejects it with this ExplicitException.

Source

Thrown at server-core/src/main/java/io/onedev/server/mail/DefaultMailService.java:760

		String messageId = getMessageId(message);
		if (messageId != null) {
			var existingIssue = issueService.findByMessageId(messageId);
			if (existingIssue != null) {
				logger.warn("Ignored opening issue from message as issue with same message id already exists: {}", 
						existingIssue.getReference());
				return existingIssue;
			}
		}

		Issue issue = new Issue();
		issue.setProject(project);

		try {
			var subject = message.getSubject();
			if (StringUtils.isBlank(subject)) {
				throw new ExplicitException("Subject required to open issue via email");
			} else if (subject.trim().toLowerCase().startsWith("re:")) {
				throw new ExplicitException("This address is intended to open issues, " +
						"however the message looks like a reply to some other email");
			}
			issue.setTitle(subject);
		} catch (MessagingException e) {
			throw new RuntimeException(e);
		}
		
		if (messageId != null)
			issue.setMessageId(messageId);

		String description = parseBody(message, project, issue.getUUID());
		if (StringUtils.isNotBlank(description)) 
			description = stripSignature(description);
		if (StringUtils.isNotBlank(description))
			issue.setDescription(decorateContent(description));
		
		if (submitter == null) {
			issue.setSubmitter(userService.getSystem());

View on GitHub (pinned to d44925c47c)

Solutions

  1. Compose a new email to the issue address instead of replying to an existing thread
  2. Reply to issue notification emails using the issue's own reply address, not the issue-creation address
  3. Strip the 're:' prefix if the intent truly is a new issue (not recommended; retitled anyway)
  4. Configure mail clients/templates so replies go to notification addresses only

Example fix

// before
To: project-issues@onedev.example
Subject: Re: Fix login timeout
// after
To: project-issues@onedev.example
Subject: Fix login timeout   (fresh mail, not a reply)
Defensive patterns

Strategy: validation

Validate before calling

String subj = message.getSubject(); if (subj != null && subj.trim().toLowerCase().startsWith("re:")) { /* do not send to issues address */ }

Try / catch

try { openIssueViaEmail(msg); } catch (ExplicitException e) { redirectReplyToIssueAddress(e); }

Prevention

When it happens

Trigger: Replying (or a mail client threading a reply) to a notification using the project's issue-creation email address; subject begins with 're:', 'RE:', etc.

Common situations: User hits Reply instead of Reply-All/Compose-new on a notification that shows the issue address in Cc; mail client auto-addresses the reply to the issue-creation address; templates that always include the issues address.

Understand the failure class

Background: "Must be a positive integer", "Invalid value", "Unsupported": the invalid-argument-value error family, when a library rejects the value you pass — this error's family across 35 libraries.

Related errors


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