I tried again and I think it's a problem with ndb. In tumbleweed both dnf and zypper use rpm with ndb, and only rpm-ndb in leap has problem. But it seems that all failure in tumbleweed can be just ignored and won't cause any consequence.