How to move incus server to another storage when zpool is full?

I have two machines inside the default pool (incus-default). My machines keep crashing because the pool is filling up. I created a new pool to move one of the machines there, but am unable to move it because it is out of space.

$ incus move myserver --storage newpool
Error: Migration operation failure: Instance move to destination failed: Create instance from copy: Create instance volume from copy failed: Failed to run: zfs snapshot -r incus-default/virtual-machines/myserver@migration-e8e8cef0-c1b2-48bd-9f1a-cee6577735bd: exit status 1 (cannot create snapshots : out of space
no snapshots were created)

When I do zpool list I see this:

$ zpool list
NAME              SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
newpool           186G   702K   186G        -         -     0%     0%  1.00x    ONLINE  -
incus-default    99.5G  96.4G  3.08G        -         -    93%    96%  1.00x    ONLINE  -

So, indeed it is full.

This keeps happening and the way I have been fixing this up until now is to delete servers that are sharing the pool. But, I’ve almost culled everything and now have two servers which are likely taking up the majority of the pool. It isn’t a good solution.

I’m not sure if I should be looking at doing something with zpool here, or incus.

At any rate, I feel like I am not using pools correctly because they keep filling up, and my solution has been to create a new isolated pool for each new machine, which seems like the wrong way to take advantage of the benefits of pools, right? Maybe I need to create a massive pool (say 500GB?) instead of several that are 100GB.

What does zfs list -t all look like?
It may be snapshots that are causing you to hold on to a lot of data, even if the instance has a disk limit set.