earendil-works/pi · error · Error

No changes made to ${path}. The replacement produced identic

Error message

No changes made to ${path}. The replacement produced identical content. This might indicate an issue with special characters or the text not existing as expected.

What it means

Error "No changes made to ${path}. The replacement produced identical content. This might indicate an issue with special characters or the text not existing as expected." thrown in earendil-works/pi.

Source

Thrown at packages/coding-agent/src/core/tools/edit-diff.ts:358

	matchedEdits.sort((a, b) => a.matchIndex - b.matchIndex);
	for (let i = 1; i < matchedEdits.length; i++) {
		const previous = matchedEdits[i - 1];
		const current = matchedEdits[i];
		if (previous.matchIndex + previous.matchLength > current.matchIndex) {
			throw new Error(
				`edits[${previous.editIndex}] and edits[${current.editIndex}] overlap in ${path}. Merge them into one edit or target disjoint regions.`,
			);
		}
	}

	const baseContent = normalizedContent;
	const newContent = usedFuzzyMatch
		? applyReplacementsPreservingUnchangedLines(normalizedContent, replacementBaseContent, matchedEdits)
		: applyReplacements(replacementBaseContent, matchedEdits);

	if (baseContent === newContent) {
		throw getNoChangeError(path, normalizedEdits.length);
	}

	return { baseContent, newContent };
}

/** Generate a standard unified patch. */
export function generateUnifiedPatch(path: string, oldContent: string, newContent: string, contextLines = 4): string {
	return Diff.createTwoFilesPatch(path, path, oldContent, newContent, undefined, undefined, {
		context: contextLines,
		headerOptions: Diff.FILE_HEADERS_ONLY,
	});
}

/**
 * Generate a display-oriented diff string with line numbers and context.
 * Returns both the diff string and the first changed line number (in the new file).
 */
export function generateDiffString(

View on GitHub (pinned to 4af9d21d3b)

Solutions

  1. The replacement is identical to the original; change the new text so it differs from oldText.

When it happens

Trigger: Thrown at packages/coding-agent/src/core/tools/edit-diff.ts:358 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24). Data as JSON: /api/errors/00eb6cc084f97f4e. Report an issue: GitHub.