There might be misunderstanding [1] when libvirt permits domain redefinition and if it's a valid case at all. 1. https://github.com/ansible-collections/community.libvirt/blob/b973d7c4b405818b9fe77bbb0432c67acc12e82f/plugins/modules/virt.py#L533 Signed-off-by: Roman Bolshakov <r.bolshakov@xxxxxxxxx> --- src/libvirt-domain.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 750e32f0ca..e48f3cdb02 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -6290,8 +6290,8 @@ virDomainGetBlockInfo(virDomainPtr domain, const char *disk, * * Define a domain, but does not start it. * This definition is persistent, until explicitly undefined with - * virDomainUndefine(). A previous definition for this domain would be - * overridden if it already exists. + * virDomainUndefine(). A previous definition for this domain with the same + * UUID and name would be overridden if it already exists. * * virDomainFree should be used to free the resources after the * domain object is no longer needed. @@ -6333,8 +6333,8 @@ virDomainDefineXML(virConnectPtr conn, const char *xml) * * Defines a domain, but does not start it. * This definition is persistent, until explicitly undefined with - * virDomainUndefine(). A previous definition for this domain would be - * overridden if it already exists. + * virDomainUndefine(). A previous definition for this domain with the same + * UUID and name would be overridden if it already exists. * * virDomainFree should be used to free the resources after the * domain object is no longer needed. -- 2.32.0