Please Help! Marlin STM32F103 Compile Error AttributeError: 'NoneType' object has no attribute 'startswith'

I’ve been trying to compile firmware for my 3D Printer but I keep getting this error, I asked in Marlin discord and saw posts on the Marlin Github and was told to forward it here.

The board’s chip is STM32F103RE

This is the error I am getting:

Error: Traceback (most recent call last):
  File "C:\.platformio\penv\lib\site-packages\platformio\__main__.py", line 102, in main
    cli()  # pylint: disable=no-value-for-parameter
  File "C:\.platformio\penv\lib\site-packages\click\core.py", line 1130, in __call__    
    return self.main(*args, **kwargs)
  File "C:\.platformio\penv\lib\site-packages\click\core.py", line 1055, in main        
    rv = self.invoke(ctx)
  File "C:\.platformio\penv\lib\site-packages\platformio\cli.py", line 71, in invoke    
    return super().invoke(ctx)
  File "C:\.platformio\penv\lib\site-packages\click\core.py", line 1657, in invoke      
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "C:\.platformio\penv\lib\site-packages\click\core.py", line 1404, in invoke      
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\.platformio\penv\lib\site-packages\click\core.py", line 760, in invoke       
    return __callback(*args, **kwargs)
  File "C:\.platformio\penv\lib\site-packages\click\decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "C:\.platformio\penv\lib\site-packages\platformio\run\cli.py", line 147, in cli
    process_env(
  File "C:\.platformio\penv\lib\site-packages\platformio\run\cli.py", line 204, in process_env
    result = {"env": name, "duration": time(), "succeeded": ep.process()}
  File "C:\.platformio\penv\lib\site-packages\platformio\run\processor.py", line 83, in process
    install_project_env_dependencies(
  File "C:\.platformio\penv\lib\site-packages\platformio\package\commands\install.py", line 131, in install_project_env_dependencies
    _install_project_env_platform(project_env, options),
  File "C:\.platformio\penv\lib\site-packages\platformio\package\commands\install.py", line 148, in _install_project_env_platform
    PlatformPackageManager().install(
  File "C:\.platformio\penv\lib\site-packages\platformio\platform\base.py", line 184, in configure_project_packages      
    self.configure_default_packages(options, targets or [])
  File "C:\.platformio\platforms\ststm32\platform.py", line 35, in configure_default_packages
    if board.startswith("portenta"):
AttributeError: 'NoneType' object has no attribute 'startswith'

============================================================

An unexpected error occurred. Further steps:

* Verify that you have the latest version of PlatformIO using
  `pip install -U platformio` command

* Try to find answer in FAQ Troubleshooting section
  https://docs.platformio.org/page/faq/index.html

* Report this problem to the developers
  https://github.com/platformio/platformio-core/issues

============================================================

I’ve tried completely deleting and reinstalling Platform.io, and using the latest version
I’ve also tried many different Marlin versions, including latest and bug fixes
and I’ve tried creating my own board file similar to it and it gave the same error

here is my platformio.ini

#
# Marlin Firmware
# PlatformIO Configuration File
#
# For detailed documentation with EXAMPLES:
#
# https://docs.platformio.org/en/latest/projectconf/index.html
#

# Automatic targets - enable auto-uploading
#targets = upload

[platformio]
src_dir      = Marlin
boards_dir   = buildroot/share/PlatformIO/boards
default_envs = STM32F103RE_creality_smartPro
include_dir  = Marlin
extra_configs =
    Marlin/config.ini
    ini/avr.ini
    ini/due.ini
    ini/esp32.ini
    ini/features.ini
    ini/lpc176x.ini
    ini/native.ini
    ini/samd21.ini
    ini/samd51.ini
    ini/stm32-common.ini
    ini/stm32f0.ini
    ini/stm32f1-maple.ini
    ini/stm32f1.ini
    ini/stm32f4.ini
    ini/stm32f7.ini
    ini/stm32h7.ini
    ini/stm32g0.ini
    ini/teensy.ini
    ini/renamed.ini

#
# The 'common' section applies to most Marlin builds.
#
# By default platformio build will abort after 5 errors.
# Remove '-fmax-errors=5' from build_flags below to see all.
#
[common]
build_flags        = -g3 -D__MARLIN_FIRMWARE__ -DNDEBUG
                     -fmax-errors=5
extra_scripts      =
  pre:buildroot/share/PlatformIO/scripts/configuration.py
  pre:buildroot/share/PlatformIO/scripts/common-dependencies.py
  pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
  pre:buildroot/share/PlatformIO/scripts/preflight-checks.py
  post:buildroot/share/PlatformIO/scripts/common-dependencies-post.py
lib_deps           =
default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared> -<src/tests>
  -<src/lcd/HD44780> -<src/lcd/TFTGLCD> -<src/lcd/dogm> -<src/lcd/tft> -<src/lcd/tft_io>
  -<src/HAL/STM32/tft> -<src/HAL/STM32F1/tft>
  -<src/lcd/e3v2/common> -<src/lcd/e3v2/creality> -<src/lcd/e3v2/proui> -<src/lcd/e3v2/jyersui> -<src/lcd/e3v2/marlinui>
  -<src/lcd/menu>
  -<src/lcd/menu/game/game.cpp> -<src/lcd/menu/game/brickout.cpp> -<src/lcd/menu/game/invaders.cpp>
  -<src/lcd/menu/game/maze.cpp> -<src/lcd/menu/game/snake.cpp>
  -<src/lcd/menu/menu_backlash.cpp>
  -<src/lcd/menu/menu_bed_leveling.cpp>
  -<src/lcd/menu/menu_bed_tramming.cpp>
  -<src/lcd/menu/menu_cancelobject.cpp>
  -<src/lcd/menu/menu_delta_calibrate.cpp>
  -<src/lcd/menu/menu_filament.cpp>
  -<src/lcd/menu/menu_info.cpp>
  -<src/lcd/menu/menu_job_recovery.cpp>
  -<src/lcd/menu/menu_language.cpp>
  -<src/lcd/menu/menu_led.cpp>
  -<src/lcd/menu/menu_media.cpp>
  -<src/lcd/menu/menu_mmu2.cpp>
  -<src/lcd/menu/menu_password.cpp>
  -<src/lcd/menu/menu_power_monitor.cpp>
  -<src/lcd/menu/menu_spindle_laser.cpp>
  -<src/lcd/menu/menu_temperature.cpp>
  -<src/lcd/menu/menu_tmc.cpp>
  -<src/lcd/menu/menu_touch_screen.cpp>
  -<src/lcd/menu/menu_tramming_wizard.cpp>
  -<src/lcd/menu/menu_ubl.cpp>
  -<src/lcd/menu/menu_x_twist.cpp>
  -<src/lcd/extui/anycubic> -<src/lcd/extui/anycubic_chiron> -<src/lcd/extui/anycubic_vyper> -<src/lcd/extui/anycubic_i3mega>
  -<src/lcd/extui/dgus> -<src/lcd/extui/dgus/fysetc> -<src/lcd/extui/dgus/hiprecy> -<src/lcd/extui/dgus/mks> -<src/lcd/extui/dgus/origin>
  -<src/lcd/extui/dgus_reloaded>
  -<src/lcd/extui/example>
  -<src/lcd/extui/ftdi_eve_touch_ui>
  -<src/lcd/extui/malyan>
  -<src/lcd/extui/mks_ui>
  -<src/lcd/extui/nextion>
  -<src/lcd/extui/ia_creality>
  -<src/lcd/lcdprint.cpp>
  -<src/lcd/touch/touch_buttons.cpp>
  -<src/sd/usb_flashdrive/lib-uhs2> -<src/sd/usb_flashdrive/lib-uhs3>
  -<src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp>
  -<src/sd/cardreader.cpp> -<src/sd/Sd2Card.cpp> -<src/sd/SdBaseFile.cpp> -<src/sd/SdFatUtil.cpp> -<src/sd/SdFile.cpp> -<src/sd/SdVolume.cpp>
  -<src/HAL/shared/backtrace>
  -<src/HAL/shared/cpu_exception>
  -<src/HAL/shared/eeprom_if_i2c.cpp>
  -<src/HAL/shared/eeprom_if_spi.cpp>
  -<src/feature/adc> -<src/gcode/feature/adc>
  -<src/feature/ammeter.cpp>
  -<src/feature/babystep.cpp>
  -<src/feature/backlash.cpp>
  -<src/feature/baricuda.cpp> -<src/gcode/feature/baricuda>
  -<src/feature/bedlevel/abl> -<src/gcode/bedlevel/abl>
  -<src/feature/bedlevel/bdl> -<src/gcode/probe/M102.cpp>
  -<src/feature/bedlevel/mbl> -<src/gcode/bedlevel/mbl>
  -<src/feature/bedlevel/ubl> -<src/gcode/bedlevel/ubl>
  -<src/feature/bedlevel/hilbert_curve.cpp>
  -<src/feature/binary_stream.cpp> -<src/libs/heatshrink>
  -<src/feature/bltouch.cpp>
  -<src/feature/cancel_object.cpp> -<src/gcode/feature/cancel>
  -<src/feature/caselight.cpp> -<src/gcode/feature/caselight>
  -<src/feature/closedloop.cpp>
  -<src/feature/controllerfan.cpp> -<src/gcode/feature/controllerfan>
  -<src/feature/cooler.cpp>  -<src/gcode/temp/M143_M193.cpp>
  -<src/feature/dac> -<src/feature/digipot>
  -<src/feature/direct_stepping.cpp> -<src/gcode/motion/G6.cpp>
  -<src/feature/e_parser.cpp>
  -<src/feature/easythreed_ui.cpp>
  -<src/feature/encoder_i2c.cpp>
  -<src/feature/ethernet.cpp> -<src/gcode/feature/network/M552-M554.cpp>
  -<src/feature/fancheck.cpp>
  -<src/feature/fanmux.cpp>
  -<src/feature/filwidth.cpp> -<src/gcode/feature/filwidth>
  -<src/feature/fwretract.cpp> -<src/gcode/feature/fwretract>
  -<src/feature/host_actions.cpp>
  -<src/feature/hotend_idle.cpp>
  -<src/feature/joystick.cpp>
  -<src/feature/leds/blinkm.cpp>
  -<src/feature/leds/leds.cpp>
  -<src/feature/leds/neopixel.cpp>
  -<src/feature/leds/pca9533.cpp>
  -<src/feature/leds/pca9632.cpp>
  -<src/feature/leds/printer_event_leds.cpp>
  -<src/feature/leds/tempstat.cpp>
  -<src/feature/max7219.cpp>
  -<src/feature/meatpack.cpp>
  -<src/feature/mixing.cpp>
  -<src/feature/mmu/mmu.cpp>
  -<src/feature/mmu/mmu2.cpp> -<src/gcode/feature/prusa_MMU2>
  -<src/feature/password> -<src/gcode/feature/password>
  -<src/feature/pause.cpp>
  -<src/feature/power.cpp>
  -<src/feature/power_monitor.cpp> -<src/gcode/feature/power_monitor>
  -<src/feature/powerloss.cpp> -<src/gcode/feature/powerloss>
  -<src/feature/probe_temp_comp.cpp>
  -<src/feature/repeat.cpp>
  -<src/feature/runout.cpp> -<src/gcode/feature/runout>
  -<src/feature/snmm.cpp>
  -<src/feature/solenoid.cpp> -<src/gcode/control/M380_M381.cpp>
  -<src/feature/spindle_laser.cpp> -<src/gcode/control/M3-M5.cpp>
  -<src/feature/stepper_driver_safety.cpp>
  -<src/feature/tmc_util.cpp> -<src/module/stepper/trinamic.cpp>
  -<src/feature/tramming.cpp>
  -<src/feature/twibus.cpp>
  -<src/feature/x_twist.cpp> -<src/gcode/probe/M423.cpp>
  -<src/feature/z_stepper_align.cpp>
  -<src/gcode/bedlevel/G26.cpp>
  -<src/gcode/bedlevel/G35.cpp>
  -<src/gcode/bedlevel/G42.cpp>
  -<src/gcode/bedlevel/M420.cpp> -<src/feature/bedlevel/bedlevel.cpp>
  -<src/gcode/calibrate/G33.cpp>
  -<src/gcode/calibrate/G34.cpp>
  -<src/gcode/calibrate/G34_M422.cpp>
  -<src/gcode/calibrate/G76_M871.cpp>
  -<src/gcode/calibrate/G425.cpp>
  -<src/gcode/calibrate/M12.cpp>
  -<src/gcode/calibrate/M48.cpp>
  -<src/gcode/calibrate/M100.cpp>
  -<src/gcode/calibrate/M425.cpp>
  -<src/gcode/calibrate/M665.cpp>
  -<src/gcode/calibrate/M666.cpp>
  -<src/gcode/calibrate/M852.cpp>
  -<src/gcode/control/M10-M11.cpp>
  -<src/gcode/control/M42.cpp> -<src/gcode/control/M226.cpp>
  -<src/gcode/config/M43.cpp>
  -<src/gcode/config/M217.cpp>
  -<src/gcode/config/M218.cpp>
  -<src/gcode/config/M221.cpp>
  -<src/gcode/config/M301.cpp>
  -<src/gcode/config/M302.cpp>
  -<src/gcode/config/M304.cpp>
  -<src/gcode/config/M305.cpp>
  -<src/gcode/config/M540.cpp>
  -<src/gcode/config/M575.cpp>
  -<src/gcode/config/M672.cpp>
  -<src/gcode/control/M7-M9.cpp>
  -<src/gcode/control/M211.cpp>
  -<src/gcode/control/M350_M351.cpp>
  -<src/gcode/control/M605.cpp>
  -<src/module/ft_motion.cpp> -<src/gcode/feature/ft_motion/M493.cpp>
  -<src/gcode/feature/advance>
  -<src/gcode/feature/camera>
  -<src/gcode/feature/i2c>
  -<src/gcode/feature/input_shaping>
  -<src/gcode/feature/L6470>
  -<src/gcode/feature/leds/M150.cpp>
  -<src/gcode/feature/leds/M7219.cpp>
  -<src/gcode/feature/macro>
  -<src/gcode/feature/mixing/M163-M165.cpp>
  -<src/gcode/feature/mixing/M166.cpp>
  -<src/gcode/feature/pause/G27.cpp>
  -<src/gcode/feature/pause/G60.cpp>
  -<src/gcode/feature/pause/G61.cpp>
  -<src/gcode/feature/pause/M125.cpp>
  -<src/gcode/feature/pause/M600.cpp>
  -<src/gcode/feature/pause/M603.cpp>
  -<src/gcode/feature/pause/M701_M702.cpp>
  -<src/gcode/feature/trinamic/M122.cpp>
  -<src/gcode/feature/trinamic/M569.cpp>
  -<src/gcode/feature/trinamic/M906.cpp>
  -<src/gcode/feature/trinamic/M911-M914.cpp>
  -<src/gcode/feature/trinamic/M919.cpp>
  -<src/gcode/geometry/G17-G19.cpp>
  -<src/gcode/geometry/G53-G59.cpp>
  -<src/gcode/geometry/M206_M428.cpp>
  -<src/gcode/host/M16.cpp>
  -<src/gcode/host/M113.cpp>
  -<src/gcode/host/M154.cpp>
  -<src/gcode/host/M360.cpp>
  -<src/gcode/host/M876.cpp>
  -<src/gcode/lcd/M0_M1.cpp>
  -<src/gcode/lcd/M73.cpp>
  -<src/gcode/lcd/M117.cpp>
  -<src/gcode/lcd/M145.cpp>
  -<src/gcode/lcd/M250.cpp> -<src/gcode/lcd/M255.cpp> -<src/gcode/lcd/M256.cpp>
  -<src/gcode/lcd/M300.cpp>
  -<src/gcode/lcd/M414.cpp>
  -<src/gcode/lcd/M995.cpp>
  -<src/gcode/motion/G2_G3.cpp>
  -<src/gcode/motion/G5.cpp>
  -<src/gcode/motion/G80.cpp>
  -<src/gcode/motion/M290.cpp>
  -<src/gcode/probe/G30.cpp>
  -<src/gcode/probe/G31_G32.cpp>
  -<src/gcode/probe/G38.cpp>
  -<src/gcode/probe/M401_M402.cpp>
  -<src/gcode/probe/M851.cpp>
  -<src/gcode/probe/M951.cpp>
  -<src/gcode/scara>
  -<src/gcode/sd>
  -<src/gcode/sd/M32.cpp>
  -<src/gcode/sd/M808.cpp>
  -<src/gcode/temp/M104_M109.cpp>
  -<src/gcode/temp/M123.cpp>
  -<src/gcode/temp/M155.cpp>
  -<src/gcode/temp/M192.cpp>
  -<src/gcode/temp/M306.cpp>
  -<src/gcode/units/G20_G21.cpp>
  -<src/gcode/units/M82_M83.cpp>
  -<src/gcode/units/M149.cpp>
  -<src/libs/BL24CXX.cpp> -<src/libs/W25Qxx.cpp>
  -<src/libs/MAX31865.cpp>
  -<src/libs/hex_print.cpp>
  -<src/libs/least_squares_fit.cpp>
  -<src/libs/nozzle.cpp> -<src/gcode/feature/clean>
  -<src/module/delta.cpp>
  -<src/module/planner_bezier.cpp>
  -<src/module/polargraph.cpp>
  -<src/module/printcounter.cpp>
  -<src/module/probe.cpp>
  -<src/module/scara.cpp>
  -<src/module/servo.cpp> -<src/gcode/control/M280.cpp> -<src/gcode/config/M281.cpp> -<src/gcode/control/M282.cpp>
  -<src/module/stepper/TMC26X.cpp>

#
# Default values apply to all 'env:' prefixed environments
#
[env]
framework         = arduino
extra_scripts     = ${common.extra_scripts}
build_flags       = ${common.build_flags}
lib_deps          = ${common.lib_deps}
monitor_speed     = 250000
monitor_eol       = LF
monitor_echo      = yes
monitor_filters   = colorize, time, send_on_enter

#
# Just print the dependency tree
#
[env:include_tree]
platform         = atmelavr
board            = megaatmega2560
build_flags      = -c -H -std=gnu++11 -Wall -Os -D__MARLIN_FIRMWARE__
build_src_filter = +<src/MarlinCore.cpp>

here is the stm32f1.ini file, it is unchanged, I included it if needed

[env:STM32F103RE_creality_smartPro]
extends                     = STM32F103Rx_creality
board_build.offset          = 0x10000
board_upload.offset_address = 0x08010000

[STM32F103Rx_creality]
extends                     = stm32_variant
board_build.variant         = MARLIN_F103Rx
board_build.offset          = 0x7000
board_upload.offset_address = 0x08007000
build_flags                 = ${stm32_variant.build_flags}
                              -DMCU_STM32F103RE -DHAL_SD_MODULE_ENABLED
                              -DSS_TIMER=4 -DTIMER_SERVO=TIM5
                              -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8
build_unflags               = ${stm32_variant.build_unflags}
                              -DUSBCON -DUSBD_USE_CDC
extra_scripts               = ${stm32_variant.extra_scripts}
                              pre:buildroot/share/PlatformIO/scripts/random-bin.py
monitor_speed               = 115200
debug_tool                  = jlink
upload_protocol             = jlink

and stm32-common.ini

[stm32_variant]
extends       = common_stm32
extra_scripts = ${common_stm32.extra_scripts}
                pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
                    buildroot/share/PlatformIO/scripts/offset_and_rename.py


[common_stm32]
platform         = ststm32@~12.1
board_build.core = stm32
build_flags      = ${common.build_flags}
                   -std=gnu++14 -DHAL_STM32
                   -DUSBCON -DUSBD_USE_CDC
                   -DTIM_IRQ_PRIO=13
                   -DADC_RESOLUTION=12
build_unflags    = -std=gnu++11
build_src_filter = ${common.default_src_filter} +<src/HAL/STM32> +<src/HAL/shared/backtrace>
extra_scripts    = ${common.extra_scripts}
                   pre:buildroot/share/PlatformIO/scripts/stm32_serialbuffer.py