Sometimes my laptop doesn't resume when I open the lid. How to fix?

I’m using a 2020 AMD MSI Bravo 15 AMD Ryzen 7 4800H laptop with Tumbleweed Gnome Wayland. About 1 time out of 4 when I open the lid the login screen will appear but it’ll be locked up. I have to hold down the power button and do a hard reset to get it working again.

I looked at these posts:

and

to learn more.

Sometimes when it locks up the Bluetooth won’t be working and I’ll have to do another full power cycle to get it working again.

I also found this when I asked Copilot:
" Disable Bluetooth: A known issue with Bluetooth devices can cause wake-up problems. Try disabling Bluetooth temporarily to see if it resolves the issue. You can do this with the command sudo systemctl stop bluetooth"

Anyone else encountered this kind of problem? Any solutions?

(Starting now I’ll make sure my Bluetooth is off before closing the lid to see if that fixes it. Usually when I close my lid the Bluetooth is on.)

Here’s the details on my Bluetooth adapter:

advait@localhost:~> btmgmt info
Index list with 1 item
hci0:	Primary controller
	addr 50:2F:9B:AA:A1:B7 version 11 manufacturer 2 class 0x7c010c
	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr le advertising secure-conn debug-keys privacy configuration static-addr phy-configuration wide-band-speech 
	current settings: powered ssp br/edr le secure-conn wide-band-speech 
	name localhost.localdomain
	short name 
hci0:	Configuration options
	supported options: public-address 
	missing options: 

advait@localhost:~> hciconfig -a

The program 'hciconfig' can be found in the following package:
  * bluez-deprecated [ path: /usr/bin/hciconfig, repository: download.opensuse.org-oss ]

Try installing with:
    sudo zypper install bluez-deprecated

advait@localhost:~> systemctl status bluetooth
● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disabled)
     Active: active (running) since Thu 2025-05-01 06:13:30 IST; 4h 38min ago
 Invocation: 75e5fbe4d91a4a33bb4834fd2cf29385
       Docs: man:bluetoothd(8)
   Main PID: 1556 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 47203)
        CPU: 1min 13.002s
     CGroup: /system.slice/bluetooth.service
             └─1556 /usr/libexec/bluetooth/bluetoothd

Warning: some journal files were not opened due to insufficient permissions.

advait@localhost:~> sudo systemctl status bluetooth
[sudo] password for root: 
● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disabled)
     Active: active (running) since Thu 2025-05-01 06:13:30 IST; 4h 38min ago
 Invocation: 75e5fbe4d91a4a33bb4834fd2cf29385
       Docs: man:bluetoothd(8)
   Main PID: 1556 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 47203)
        CPU: 1min 13.146s
     CGroup: /system.slice/bluetooth.service
             └─1556 /usr/libexec/bluetooth/bluetoothd

May 01 06:14:07 localhost.localdomain bluetoothd[1556]: Endpoint registered: sender=:1.97 path=/MediaEndpoint/A2DPSource/faststream_duplex
May 01 06:14:07 localhost.localdomain bluetoothd[1556]: Endpoint registered: sender=:1.97 path=/MediaEndpoint/A2DPSink/opus_05
May 01 06:14:07 localhost.localdomain bluetoothd[1556]: Endpoint registered: sender=:1.97 path=/MediaEndpoint/A2DPSource/opus_05
May 01 06:14:07 localhost.localdomain bluetoothd[1556]: Endpoint registered: sender=:1.97 path=/MediaEndpoint/A2DPSink/opus_05_duplex
May 01 06:14:07 localhost.localdomain bluetoothd[1556]: Endpoint registered: sender=:1.97 path=/MediaEndpoint/A2DPSource/opus_05_duplex
May 01 06:27:38 localhost.localdomain bluetoothd[1556]: /org/bluez/hci0/dev_AC_BF_71_CB_45_39/sep6/fd0: fd(33) ready
May 01 09:15:10 localhost.localdomain bluetoothd[1556]: src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)
May 01 09:15:11 localhost.localdomain bluetoothd[1556]: src/profile.c:ext_io_disconnected() Unable to get io data for Phone Book Access: getpeername: Transport endpoint is not connected (107)
May 01 09:26:07 localhost.localdomain bluetoothd[1556]: /org/bluez/hci0/dev_00_6A_8E_00_0C_B7/sep3/fd2: fd(32) ready
May 01 09:45:30 localhost.localdomain bluetoothd[1556]: /org/bluez/hci0/dev_AC_BF_71_CB_45_39/fd3: fd(34) ready

advait@localhost:~> lsusb | grep bluetooth -i
Bus 003 Device 002: ID 8087:0029 Intel Corp. AX200 Bluetooth
advait@localhost:~> 

Update: I’ll also turn off my wifi before closing the lid to see if that helps.