### Godot version

4.2 eca6f0e

### System information

Windows 10 x64

### Issue description


https://github.com/godotengine/godot/assets/2223172/a2796263-4e2e-4b14-a080-b3ad034cc141



### Steps to reproduce

1. Add SubViewport
2. Add Sprite2D
3. Set spirte's texture to ViewportTexture
4. Create new scene
5. Instance the new scene inside the scene with viewport
6. Make sure both scenes are opened
7. Go to instance scene and save it
8. Go to viewport scene

You will see error spam. Reloading the scene fixes it.

### Minimal reproduction project

[vip.zip](https://github.com/godotengine/godot/files/12292386/vip.zip)

class SceneTreeTimer;
class Viewport;
class Window;
class World2D;
class ViewportTexture : public Texture2D {
	GDCLASS(ViewportTexture, Texture2D);
	NodePath path;
	friend class Viewport;
	Viewport *vp = nullptr;
	bool vp_pending = false;
	bool vp_changed = false;
	void _setup_local_to_scene(const Node *p_loc_scene);
	mutable RID proxy_ph;
	mutable RID proxy;
protected:
	static void _bind_methods();
public:
	void set_viewport_path_in_scene(const NodePath &p_path);
	NodePath get_viewport_path_in_scene() const;
	virtual void setup_local_to_scene() override;
	virtual int get_width() const override;
	virtual int get_height() const override;
	virtual Size2 get_size() const override;
	virtual RID get_rid() const override;
	virtual bool has_alpha() const override;
	virtual Ref<Image> get_image() const override;
	ViewportTexture();
	~ViewportTexture();
};
class Viewport : public Node {