diff --git a/tools/server/server-context.cpp b/tools/server/server-context.cpp index 73af812437..eba463e4da 100644 --- a/tools/server/server-context.cpp +++ b/tools/server/server-context.cpp @@ -2363,7 +2363,7 @@ private: //printf("[DEBUG] `do_reset` was set to `true` after failing to restore a checkpoint"); } else { pos_next = std::min(pos_next, std::max(it->pos_min + 1, it->pos_max)); - n_past = slot.prompt.tokens.size_up_to_pos(pos_next); + n_past = std::min(slot.prompt.tokens.size_up_to_pos(pos_next), (size_t) it->n_tokens); SLT_WRN(slot, "restored context checkpoint (pos_min = %d, pos_max = %d, n_tokens = %" PRId64 ", size = %.3f MiB)\n", it->pos_min, it->pos_max, it->n_tokens, (float) checkpoint_size / 1024 / 1024); } }