Updating field positions from library doesn't work for some symbols

In soundring.kicad_sch I have two connectors, J2 and J9.

As far as I can see they are both identical, except for the fact that J2 has been in the schematic for a while and J9 I have just added.

When I select them both and run “Update Symbols from Library” with these settings…

image

then J2 gets its fields placed at the top and bottom while J9 gets them placed to the right.

image

What’s going on? Is there a way I can unify this (either style is fine) without removing and re-adding the connector?

Version info
Application: KiCad Schematic Editor x64 on x64

Version: 9.0.0, release build

Libraries:
	wxWidgets 3.2.6
	FreeType 2.13.3
	HarfBuzz 10.2.0
	FontConfig 2.15.0
	libcurl/8.11.1-DEV Schannel zlib/1.3.1

Platform: Windows 10 (build 19045), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: ATI Technologies Inc., AMD Radeon(TM) Graphics, 4.6.0 Compatibility Profile Context 23.10.24.05.230830

Build Info:
	Date: Feb 19 2025 17:46:53
	wxWidgets: 3.2.6 (wchar_t,wx containers)
	Boost: 1.86.0
	OCC: 7.8.1
	Curl: 8.11.1-DEV
	ngspice: 44
	Compiler: Visual C++ 1942 without C++ ABI
	KICAD_IPC_API=ON

Locale: 
	Lang: de_DE
	Enc: UTF-8
	Num: 1.234,5
	Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)

KiCad version info? Help > About KiCad > Copy Version Info, then paste into a preformatted text field.

I have added the version info.

Hover mouse over the Ref. or Value and use hotkey M, then move the text to wherever you wish.

If you are using symbols from the Kicad library, maybe that symbol has had the text moved since your first connector was placed. Maybe you moved the text and you have since forgotten.

The text is placed as it occurs in the Kicad library. If you want the text to always appear in a certain position that is different to the Kicad library position, you must first copy the symbol into a personal library, then alter the position of that text.

That looks like a generic connector symbol, so 2.0 mm JST-PH isn’t the original value text, it would be Conn_01x06 or something like. It could be that by design if you are not reverting to the original text, it doesn’t revert to the original position either. Dunno, I never worry about the original positions since it’s almost always unsuitable and I have already changed them.

That’s the thing - for J9 it’s not.

This is the symbol in the library:

image

So it seems that when I run “Update Symbols from Library” then J2 is actually taking the positions from the library but for J9 the texts are neatly arranged at the right side. Where does the difference come from?