def METHOD_NAME(client: Client):
    ret = client.call_raw(
        messages.ResetDevice(
            display_random=False,
            strength=STRENGTH,
            passphrase_protection=False,
            pin_protection=False,
            language="en-US",
            label="test",
            skip_backup=True,
        )
    )
    assert isinstance(ret, messages.ButtonRequest)
    client.debug.press_yes()
    ret = client.call_raw(messages.ButtonAck())
    # Provide entropy
    assert isinstance(ret, messages.EntropyRequest)
    ret = client.call_raw(messages.EntropyAck(entropy=EXTERNAL_ENTROPY))
    assert isinstance(ret, messages.Success)
    # Check if device is properly initialized
    ret = client.call_raw(messages.Initialize())
    assert ret.initialized is True
    assert ret.needs_backup is True
    assert ret.unfinished_backup is False
    assert ret.no_backup is False
    # start Backup workflow
    ret = client.call_raw(messages.BackupDevice())
    # send Initialize -> break workflow
    ret = client.call_raw(messages.Initialize())
    assert isinstance(ret, messages.Features)
    assert ret.initialized is True
    assert ret.needs_backup is False
    assert ret.unfinished_backup is True
    assert ret.no_backup is False
    # start backup again - should fail
    ret = client.call_raw(messages.BackupDevice())
    assert isinstance(ret, messages.Failure)
    # read Features again
    ret = client.call_raw(messages.Initialize())
    assert isinstance(ret, messages.Features)
    assert ret.initialized is True
    assert ret.needs_backup is False
    assert ret.unfinished_backup is True
    assert ret.no_backup is False