Undefined symbol detected, despite being defined

Hi, I have an issue where I think I'm using symbols in a dictionary correctly, but I cannot access them after creation. I have the following code, with the important lines being 30 to 37:

import Toybox.Application;
import Toybox.Lang;
import Toybox.WatchUi;

class countdownfieldApp extends Application.AppBase {
	hidden var _datafield;

    function initialize() {
        AppBase.initialize();
    }

    // onStart() is called on application start up
    function onStart(state as Dictionary?) as Void {
    }

    // onStop() is called when your application is exiting
    function onStop(state as Dictionary?) as Void {
    }

    // Return the initial view of your application here
    function getInitialView() as Array<Views or InputDelegates>? {
    	var settings = getSettings();
    	System.println("main seconds: " + settings.seconds);
    	_datafield = new countdownfieldView(settings);
    	
        return [ _datafield ] as Array<Views or InputDelegates>;
    }

	function getSettings() {
		var x = {
			:seconds=>Application.Properties.getValue("countdownSeconds"),
            :alertVibrate=>Application.Properties.getValue("alertVibrate")
		};
		
		System.println("obj: " + x);
		System.println("get seconds: " + x.seconds);
        System.println("get seconds: " + x.alertVibrate);

		return x;
	}

	function onSettingsChanged() {
		var settings = getSettings();
		_datafield.updateSettings(settings);
	}
}

function getApp() as countdownfieldApp {
    return Application.getApp() as countdownfieldApp;
}

When I try to run this I get a compiler error:

BUILD: /Users/x/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.macosx.x86_64_16.0.2.v20210721-1149/jre/bin/java -Dfile.encoding=UTF-8 -Dapple.awt.UIElement=true -jar /Users/x/Library/Application Support/Garmin/ConnectIQ/Sdks/connectiq-sdk-mac-4.0.5-2021-08-10-29788b0dc/bin/monkeybrains.jar -o /Users/x/Documents/projects/garmin-countdown/bin/countdown-field.prg -w -y /Users/x/Documents/projects/garmin-countdown/developer_key -d fr245_sim -c 3.2.0 -f /Users/x/Documents/projects/garmin-countdown/monkey.jungle 
BUILD: ERROR: fr245: /Users/x/Documents/projects/garmin-countdown/source/countdownfieldApp.mc:37: Undefined symbol "alertVibrate" detected.
BUILD: WARNING: The launcher icon (30x30) isn't compatible with the specified launcher icon size of the device 'fr245' (40x40). Image will be scaled to the target size.
BUILD: Complete
Aborting launch due to failed build.

If I comment out line 37, the alertVibrate then the compiler succeeds, but then fails at runtime:

obj: {symbol (8389344)=>58, symbol (29)=>true}

Error: Symbol Not Found Error
Details: Could not find symbol 'seconds'
Stack: 
  - getSettings() at /Users/x/Documents/projects/garmin-countdown/source/countdownfieldApp.mc:36 0x10000371 
  - getInitialView() at /Users/x/Documents/projects/garmin-countdown/source/countdownfieldApp.mc:22 0x10000291 

As far as my understanding of the documentation, symbols are defined on their first use:

The Monkey C compiler will assign a new value when it encounters a new Symbol. This allows a developer to use Symbol objects as keys or constant values without explicitly declaring a constant or enum. While Symbol values are constant for a build, their values may change across builds. https://developer.garmin.com/connect-iq/api-docs/Toybox/Lang/Symbol.html

so I'm not sure why either of these errors are occurring. Anyone have an idea?