Un error por uno o error por un paso (en inglés: Off-by-one error -OBOE) es un error de lógica que es el equivalente discreto de una condición de contorno. Ocurre a menudo en la programación de computadoras cuando un bucle iterativo se repite una vez más o una vez menos que lo necesario. Este problema puede presentarse por ejemplo, cuando un programador comete errores como el uso de la expresión "es menor que o igual a", cuando en realidad debería haber utilizado "es menor que" en una comparación o no toma en cuenta que una secuencia comienza en el cero en lugar de en uno (como por ejemplo con los índices de matriz en varios lenguajes). Esto también puede ocurrir en un contexto matemático.