function toErrorSnapshot(error) {
	const libSaxMatch = /\/.*\/(lib\/sax\.js)/
	return `${error.message.replace(/([\n\r]+\s*)/g, '||')}\n${error.stack
		.split(/[\n\r]+/)
		// find first line that is from lib/sax.js
		.filter((l) => libSaxMatch.test(l))[0]
		// strip of absolute path
		.replace(libSaxMatch, '$1')
		// strip of position of character in line
		.replace(/:\d+\)$/, ')')}`
}
Product A handles inputs or steps differently than Product B, which causes A to perform incorrect actions based on its perception of B's state.