ComboBox initialization with AudioParameterChoice

Hi, I am relatively new to Juce. I’ve gradually realized that most controls are set to desired ranges/default values when an Attachment is made to the AVPTS. I find that my controls with float, int, and bool parameters initialize as expected (i.e. when the Attachment is created). But the behavior of ComboBox with an AudioParameterChoice has been baffling me. From some other threads (thanks daniel!), I see that a decision was made not to do that auto-initialization, and I learned a way to populate the ComboBox entries from the APVTS. But setting the initial value, by querying the parameter’s default value, didn’t work. I finally found that the order of Attachment creation and setting of the value was key, even if I set the value with dontSendNotification. To make this concrete:

// Code common to both examples, that executes immediately before
// (Lots of temp vbls to facilitate stepping...)
    auto typePickerPtr = new ComboBox(); // don't worry, this gets added to an OwnedArray
    const String typePickerId = getTypePickerId(id); // this just builds a unique String
    auto* parameter = treeState->getParameter(typePickerId);
    typePickerPtr->addItemList(parameter->getAllValueStrings(), 1);
    auto rawDefault = parameter->getDefaultValue();
    auto defaultToSet = parameter->convertFrom0to1(rawDefault);
    . . .

Followed by one of:

// This works:
    typeAttachments.add(new AudioProcessorValueTreeState::ComboBoxAttachment(*treeState, typePickerId, *typePickerPtr));
    typePickerPtr->setSelectedId(defaultToSet, dontSendNotification);
// This fails. The first time I try to read the ComboBox after this, I get an invalid value.
// The ComboBox does work right after that, but the initial value is wrong.
    typePickerPtr->setSelectedId(defaultToSet, dontSendNotification);
    typeAttachments.add(new AudioProcessorValueTreeState::ComboBoxAttachment(*treeState, typePickerId, *typePickerPtr));

Q: Is this expected behavior? Should it be?

TIA