Bueno, disculpa que te lo diga pero con simplemente traducir esto:
Cita: There is no row a position 0"
a esto:
Cita: No hay registro en la posición 0 (cero)
me parece que se vuelve demasiado evidente que en un momento dado estás intentando acceder al registro inicial de un DataTable
vacío...
En qué circunstancia la lectura obtiene cero registros, es algo que hay que revisar, pero desde ya que el problema es que
no estás validando si el DataTable contiene o no datos, lo cual es un erro bastante común.
Te planteo la hipótesis: Supongamos que paginas los registros de la salida del SP cada 17 registros. Eso implicaría hacer un barrido del DataTable obtenido que siempre tendría registros... hasta que el DataTable tenga registros equivalentes a un múltiplo de 17, si haces un ciclo más obtendrías una tabla vacía..., pero si el paginado no valida el estado de la tabla, terminarías con un error con el mensaje "There is no row a position 0".
Sintetizando: Revisa cuántos registros devuelve en realidad esa consulta
en total, y verifica (prueba de escritorio) que pasa cuando llegues al ciclo final de paginado.