1. A method comprising: sending a request to a procedural constraint engine, wherein the procedural constraint engine comprises a stateless constraint engine, and a procedural validation module, the request comprises a first set of values, and the first set of values indicates a first set of user selections during a current state of a product configuration; receiving an error indication from the procedural constraint engine, in response to the sending the request, wherein the error indication indicates that the procedural validation module detected that output generated by the stateless constraint engine is inconsistent with a prior output generated by the stateless constraint engine during a prior state of the product configuration, and the output generated by the stateless constraint engine is based upon the first set of values; modifying at least one of the values in the first set of values to create a modified set of values, in response to the receiving the error indication, wherein the modified set of values represents the user selections during the current state of the product configuration; and sending a new request to the procedural constraint engine, wherein the new request comprises the modified set of values.