vllm-project vLLM processes token-generation penalties in the Penalty Handler, with the reported failure point in get_token_bin_counts_and_mask in vllm/model_executor/layers/utils.py. The technical issue report states that requests using prompt_embeds do not populate the corresponding prompt positions in the CPU token-ID buffer, even though those positions are marked as not being token IDs. When sampling metadata is built, the penalty path can still use stale contents from that buffer and pass them into the scatter operation without honoring is_token_ids. With repetition, presence or frequency penalties and certain batch shapes, stale or out-of-range values can trigger a CUDA device-side assertion and stop the engine; even when no crash occurs, the penalty may be calculated from incorrect data. A proposed code change converts prompt_embeds positions to an invalid token-ID padding value when sampling metadata is built, but the available evidence does not confirm that the change has been released in an official vLLM version.