Collision is sometimes only registered upon second

Hi, Iam creating a Doodle Jump clone and want to implement a platform which starts breaking after the player lands on it from the top. As you can see by the log statements in the video the second collision is not registered at all as my OnCollisionEnter2D function isn't called.
This is the config of my Platform:

The video shows the behaviour:

This is the current script:

public class BreakingStep : MonoBehaviour
{
private Animator _animator;

private void Start()
{
_animator = GetComponent<Animator>();
}

private bool isBreaking = false; // To check if the platform is already breaking

private void OnCollisionEnter2D(Collision2D collision)
{
Debug.Log("Collision");
// Check if the player landed on the platform
if (collision.gameObject.CompareTag("Player") && !isBreaking)
{
var y = collision.gameObject.GetComponent<Rigidbody2D>().velocity.y;
if (y <= 0)
{
foreach (ContactPoint2D contact in collision.contacts)
{
Debug.Log("Normal y: " + contact.normal.y + " y: " + y);
if (contact.normal.y <= 0.0f && y <= 0)
{
BreakPlatform();
break;
}
}
}
}
}

private void BreakPlatform()
{
isBreaking = true;

// Optional: Add some breaking animation or effect here
_animator.SetTrigger("destroy");

// Destroy the platform or deactivate it
// or gameObject.SetActive(false);
}

public void TriggerDestroy()
{
Destroy(gameObject);
}
}

For some reasons the video and image are not present. Here a the images

9857052--1419684--Screenshot 2024-05-27 at 11.27.14.png
9857052--1419687--Screenshot 2024-05-27 at 11.27.22.png

And here is the video
https://vimeo.com/950697295

It looks like OnCollisionEnter2D triggers once when you pass through the platform. Can you add an OnCollsionExit function with a Debug.Log to see if this collision terminates before you land on the platform the first time?