Firstly, check the logs directly to get a more concise error that we can analyse. journalctl is the standard systemd logging client you can use in the terminal. By specifying the unit (units can be socket files, timers, services) you can get logs specifically for said unit.
You can utelize flags such as -e to scroll to the end of a journal, -f to follow a journal in realtime and utelize the -p flag to set priorities like error, crit, warning (-o error) and others to filter away common journal entries so you don’t have to scroll through every line in the log.
Secondly, and this is gonna sound weird, but reboot into windows twice. The first time you boot windows run diskchk on the partition(s) in terminal/powershell/command as administrator. If it tells you it needs to do an offline scan, reboot and you’ll see an offline diskchk screen on boot before login. If not, reboot again into windows anyways, and then reboot into Linux.
The reason is that NTFS has a weird failsafe flag that NTFS on Linux considers a no-go, and it’s usually set if the system crashes more than twice, but not always. If Linux NTFS drivers see the flag, it won’t mount as a precaution. The only way to reset the flag is to reboot in windows twice. Not once, not three times, but twice.
This might be outdated info, but that was the fact some years ago. There might be a way to fix it with modern day Linux, but I don’t know, especially when I have no direct and informative errors to go by.