Request help with Virtual Serial of STM32F103C8T6

I cannot make the CDC virtual serial port on my Blue Pill (STM32F103C8T6) work when using Arduino IDE and the 'STM32 MCU based boards' board manager library.

I am using Arduino IDE 2.0.3, Additional boards manager URL of https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json, ST-LINK V2 programmer.

Board selection choices are: Board = Generic STM32F1 Series, Board part number = BluePill F103C8, USB support (if available) = CDC (Generic 'Serial' supercede U(S)ART), U(S)ART support = Enabled (generic 'Serial'). Upload method is STMCubeProgrammer (SWD).

The interesting case is trying to use the blinky example - it builds but nothing happens after programming. If I simply change 'USB support (if available)' to 'None', blinking works.

I know that electrically the USB CDC serial works because I retrieved 'pill_serial' from github (GitHub - satoshinm/pill_serial: Triple USB-to-serial adapter firmware for flashing onto an STM32F103C8T6 "blue pill" minimum development board ⛺), built it with 'STMicroelectronics STM32CubeIDE 1.11.0', and programmed it onto the Blue Pill with STM32CubeProgrammer. I am able to see the Black Magic Debug Probe in Windows Device manager.

So, it seems that selecting USB support (if available) = CDC (Generic 'Serial' supercede U(S)ART) causes the Blue Pill to completely hang.

Can someone help me figure out what I am doing wrong or what I need to change to get this to work? Any thoughts or help is greatly appreciated.

Could this be the issue: I noticed that when I find the reference for USART1 (ctrl-click on Serial, then ctrl-click on Serial1, then ctrl-click on USART1) it takes me to stm32f103xb.h. Shouldn't it reference stm32f103x8.h?

To reproduce this issue, after installing the ST Microelectronics additional boards, then select File...Examples...01.Basics...Blink.

Select the board Generic STM32F1 Series, 'Board part number' = BluePill F103C8, 'USB support (if available)' = CDC (Generic 'Serial' supercede U(S)ART), 'U(S)ART support' = Enabled (generic 'Serial'). 'Upload method' is STMCubeProgrammer (SWD).

Build/program and nothing happens.

Change 'USB support (if available)' to None, then build/program and it works.

Why?