Upgrade from Leap 15.6 to 16.0 encounters usrmerge failure

In the recent past I had problems with incorrect repos in Leap 15.6, which made it impossible to start the migration tool. That is why I now start with taking care that in Leap 15.6 the repos are correct. I do that with zypper --releasever=15.6 ref. If that produces normal output, I have the impression that I can start with the migration tool.
If not -and is often the case, I don’t know why- I remove the openSUSE-repos-Leap service clean up remains (if any), run zypper clean -a, add a temprary repo to install openSUSE-repos-Leap again and disable or remove that temporary repo. Then I start the migration tool.
As I updated to Leap 15.6 from Leap 15.5 by changing the releasever parameter, I have the impression that its value should be 15.6 in case of Leap 15.6.
I hope this helps.

I am not sure you are correct here. But OTH I am not sure you are incorrect. What I understand from post #1.

He only tried to bring his Leap 15.6 up to date before upgradeing. He did use --releasever 15.6 there for one or more of the commands, but as it still was a 15.6 system, they were superfluous (and thus confusing for the readers).

After that he used the migration tool.

When my assessment is true he did not mix methods of upgrading. But again I am not 100% sure because it is my interpretation.

@Dnk1287
When this is from another system, what should it prove?

We need info from the system you think is not OK.
Do yo u think it is still on 15.6?
Do you think there is one repo now pointing to 16.0? When yes then post the config of that system

cat /etc/zypper/repos.d/<name of the repo file which ends in .repo`>

I apologise for causing confusion. I tried to upgrade 3 computers today, all gave errors with the migration tool, two upgrades succeeded when I rebooted and did not do a dry-run before upgrading. All three gave different errors (usrmerge, loosing all user passwords and loosing network settings). In all cases I used snapper rollback to revert to a stable (Leap 15.6) state. This topic was intended for one problem and I will try to limit my input to that single problem.

After aborting the upgrade because of the usrmerge failure, I had to restore the repos as they were not (fully) 15.6 repos. I restored them, but forgot to copy the zypper lr -d output. The repos were those for Leap 16.0, but in the URLS, 16.0 was replaced by 15.6. But that didn’t make them proper Leap 15.6 repo. Anyway, this is not the reason I created this topic. When I can have access to the computer (it is at a friend’s place and I am back home at the moment), I will try to reproduce the situation, copy the relevant output ant create a new topic for it.

I have reproduced 4 times the situation where trying to upgrade the computer to Leap 16.0 led to the usrmerge failure message and aborting the upgrade needed some extra work to get back to a usable state (stable Leap 15.6 with correct repos). I would like to upgrade without having to abort it. Currently the computer is on 15.6.

I created a separate topic about the ‘dry run’ messages of opensuse-migration-tool (191811 with the aim to focus this topic on the upgrade error as described in my first post of this topic.

I managed to retract from the zypper log the error that blocks the upgrade, I hope it provide more information:

2026-02-14 10:27:34 <1> DGS-LDB-06(20713) [zypp] TargetImpl.cc(commit):1740 TargetImpl::commit(<list>CommitPolicy( DownloadInAdvance ))1933
2026-02-14 10:27:34 <1> DGS-LDB-06(20713) [zypp] RpmHeader.cc(readPackage):259 ReferenceCounted(@0x55717052ed30<=1){0x557170546b10}{filesystem-84.87-160000.2.2} from /var/cache/zypp/packages/x86_64/filesystem-84.87-160000.2.2.x86_64.rpm
2026-02-14 10:27:34 <1> DGS-LDB-06(20713) [librpmDb] RpmDb.cc(doInstallPackage):1693 RpmDb::installPackage(/var/cache/zypp/packages/x86_64/filesystem-84.87-160000.2.2.x86_64.rpm,0x0000000c)
2026-02-14 10:27:34 <1> DGS-LDB-06(20713) [zypp::exec++] forkspawnengine.cc(start):274 Executing[C] 'rpm' '--root' '/' '--dbpath' '/usr/lib/sysimage/rpm' '--define' '_dump_posttrans 1' '-U' '--percent' '--noglob' '--force' '--nodeps' '--' '/var/cache/zypp/packages/x86_64/filesystem-84.87-160000.2.2.x86_64.rpm'
2026-02-14 10:27:34 <1> DGS-LDB-06(20713) [zypp::exec++] forkspawnengine.cc(start):427 pid 21403 launched
2026-02-14 10:27:34 <1> DGS-LDB-06(20713) [Progress++] progressdata.cc(report):75 {#2|Installing: filesystem-84.87-160000.2.2.x86_64} START
2026-02-14 10:27:34 <2> DGS-LDB-06(20713) [zypp::exec] abstractspawnengine.cc(checkStatus):182 Pid 21403 exited with status 1
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245 RpmDb.cc(doInstallPackage):1830 THROW:    Subprocess failed. Error: RPM failed: Command exited with status 1.
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245 History:
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245  - Make a copy of `/bin'.
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    Merge the copy with `/usr/bin'.
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    cp: cannot overwrite directory '/usr/bin.usrmerge/old' with non-directory
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    UsrMerge conversion failed, cleaning up
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! ATTENTION: Do NOT proceed if you see this message during
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! distribution upgrade. Chances are high that your system might
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! break beyond repair if you do.
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: lua script failed: [string "%prein(filesystem-84.87-160000.2.2.x86_64)"]:22: exit
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: filesystem-84.87-160000.2.2.x86_64: install failed
2026-02-14 10:27:34 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: filesystem-15.0-11.8.1.x86_64: erase skipped
2026-02-14 10:27:34 <1> DGS-LDB-06(20713) [Progress++] progressdata.cc(report):95 {#2|Installing: filesystem-84.87-160000.2.2.x86_64} END
2026-02-14 10:28:29 <1> DGS-LDB-06(20713) [zypper] prompt.cc(get_prompt_reply):304 reply: a (0)
2026-02-14 10:28:29 <2> DGS-LDB-06(20713) [DEFINE_LOGGROUP] application.cc(setExitCode):79 setExitCode 4
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245 RpmDb.cc(installPackage):1678 RETHROW:  Subprocess failed. Error: RPM failed: Command exited with status 1.
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245 History:
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245  - Make a copy of `/bin'.
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    Merge the copy with `/usr/bin'.
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    cp: cannot overwrite directory '/usr/bin.usrmerge/old' with non-directory
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    UsrMerge conversion failed, cleaning up
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! ATTENTION: Do NOT proceed if you see this message during
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! distribution upgrade. Chances are high that your system might
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! break beyond repair if you do.
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: lua script failed: [string "%prein(filesystem-84.87-160000.2.2.x86_64)"]:22: exit
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: filesystem-84.87-160000.2.2.x86_64: install failed
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: filesystem-15.0-11.8.1.x86_64: erase skipped
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245 TargetImpl.cc(commit):1860 CAUGHT:   Subprocess failed. Error: RPM failed: Command exited with status 1.
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245 History:
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245  - Make a copy of `/bin'.
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    Merge the copy with `/usr/bin'.
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    cp: cannot overwrite directory '/usr/bin.usrmerge/old' with non-directory
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    UsrMerge conversion failed, cleaning up
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! ATTENTION: Do NOT proceed if you see this message during
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! distribution upgrade. Chances are high that your system might
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    !!! break beyond repair if you do.
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: lua script failed: [string "%prein(filesystem-84.87-160000.2.2.x86_64)"]:22: exit
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: filesystem-84.87-160000.2.2.x86_64: install failed
2026-02-14 10:28:29 <5> DGS-LDB-06(20713) [DEFINE_LOGGROUP] Exception.cc(log):245    error: filesystem-15.0-11.8.1.x86_64: erase skipped
2026-02-14 10:28:29 <2> DGS-LDB-06(20713) [zypp] TargetImpl.cc(commit):1872 commit aborted by the user
2026-02-14 10:28:29 <2> DGS-LDB-06(20713) [zypp] TargetImpl.cc(logPatchStatusChanges):930 Need to recompute the patch status changes as commit is incomplete!
2026-02-14 10:28:29 <1> DGS-LDB-06(20713) [DEFINE_LOGGROUP] PathInfo.cc(dirForEachImpl):560 readdir /etc/products.d
2026-02-14 10:28:29 <1> DGS-LDB-06(20713) [zypp] TargetImpl.cc(buildCache):1128 Read cookie: /var/cache/zypp/solv/@System/cookie{- 0644 0/0 size 76}

I found a package that belongs to Leap 16.0 in Leap 15.6:

DGS-LDB-06:~ # zypper if compat-usrmerge-tools
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...


Information for package compat-usrmerge-tools:
----------------------------------------------
Repository     : @System
Name           : compat-usrmerge-tools
Version        : 84.87-160000.2.2
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 720.2 KiB
Installed      : Yes (automatically)
Status         : up-to-date
Source package : compat-usrmerge-84.87-160000.2.2.src
Upstream URL   : https://en.opensuse.org/openSUSE:Usr_merge
Summary        : UsrMerge tools
Description    :
    Tools related to UsrMerge to check the state of the system and to
    convert an existing system to UsrMerge.

Is that OK? Can it have any relation with the UsrMerge error I am getting?
I cannot find an Leap 15.6 equivalent:

 zypper se UsrMerge
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...

S  | Name                  | Summary        | Type
---+-----------------------+----------------+--------
i  | compat-usrmerge-tools | UsrMerge tools | package

DGS-LDB-06:~ # zypper in -f compat-usrmerge-tools
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
Package 'compat-usrmerge-tools' is not available in your repositories. Cannot reinstall, upgrade, or downgrade.
Resolving package dependencies...
Nothing to do.

(The repos I have now are from a freshly installed openSUSE-repos-Leap service.)

I managed to fix it. There existed an empty directory /usr/bin/old and a bash script /usr/sbin/old which both prevented a successful upgrade. After removing both the upgrade went OK. The directory /usr/bin/old was empty, the bash script was a SUSE script to rename a batch of files.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.