diff --git a/lxd/db/instances.go b/lxd/db/instances.go
index <HASH>..<HASH> 100644
--- a/lxd/db/instances.go
+++ b/lxd/db/instances.go
@@ -98,7 +98,7 @@ type Instance struct {
 	ExpiryDate   time.Time
 }
 
-// InstanceFilter can be used to filter results yielded by InstanceList.
+// InstanceFilter specifies potential query parameter fields.
 type InstanceFilter struct {
 	Project string
 	Name    string
@@ -726,12 +726,22 @@ SELECT storage_pools.name FROM storage_pools
 func (c *Cluster) DeleteInstance(project, name string) error {
 	if strings.Contains(name, shared.SnapshotDelimiter) {
 		parts := strings.SplitN(name, shared.SnapshotDelimiter, 2)
+		filter := InstanceSnapshotFilter{
+			Project:  project,
+			Instance: parts[0],
+			Name:     parts[1],
+		}
 		return c.Transaction(func(tx *ClusterTx) error {
-			return tx.DeleteInstanceSnapshot(project, parts[0], parts[1])
+			return tx.DeleteInstanceSnapshot(filter)
 		})
 	}
+
+	filter := InstanceFilter{
+		Project: project,
+		Name:    name,
+	}
 	return c.Transaction(func(tx *ClusterTx) error {
-		return tx.DeleteInstance(project, name)
+		return tx.DeleteInstance(filter)
 	})
 }
lxd/db/instances: use Filter as parameter for delete