Sorry to bring this thread back from the dead, but just to add some findings for anyone else who encounters this issue:
The underlying cause in my project was that the server was spawning the player pawn using a class that was definitely loaded on the server but might not have been loaded on the client.
The symptoms were that for the first few seamless travel transitions the pawn would spawn correctly but on the client issue “Attempt to reassign read-only guid” warnings like those quoted by @mesterKG above. Then, after a few more seamless travel transitions the pawn would fail to spawn and show errors on the client like:
[2022.07.22-00.47.35:492][662]LogNetPackageMap: Warning: InternalLoadObject: Unable to resolve object. FullNetGUIDPath: [29]NOT_IN_CACHE
[2022.07.22-00.47.35:494][662]LogNetPackageMap: Error: UPackageMapClient::SerializeNewActor. Unresolved Archetype GUID. Guid not registered! NetGUID: 29.
[2022.07.22-00.47.35:495][662]LogNetPackageMap: Error: UPackageMapClient::SerializeNewActor Unable to read Archetype for NetGUID 244 / 29
[2022.07.22-00.47.35:496][662]LogNet: Warning: UActorChannel::ProcessBunch: SerializeNewActor failed to find/spawn actor. Actor: None, Channel: 4
I’m not sure if that is an engine bug or expected behavior. The fix/workaround for me was to ensure that the classes I’m using to spawn player pawns are always loaded on the client (by storing strong UPROPERTY pointers to them in a UGameInstanceSubsystem).