2 Fixing code snippets
source | link
<item name="shipping-rates-validation" xsi:type="array">
                                                            <item name="children" xsi:type="array">
                                                                <item name="inchoo" xsi:type="array">
                                                                    <item name="component" xsi:type="string">Inchoo_Shipping/js/view/inchoo</item>
                                                                </item>
                                                            </item>
                                                        </item>
 
    private function processShippingChildrenComponents($shippingRatesLayout)
    {
        $activeCarriers = $this->getShippingConfig()->getActiveCarriers(
            $this->getStoreResolver()->getCurrentStoreId()
        );
        foreach (array_keys($shippingRatesLayout) as $carrierName) {
            $carrierKey = str_replace('-rates-validation', '', $carrierName);
            if (!array_key_exists($carrierKey, $activeCarriers)) {
                unset($shippingRatesLayout[$carrierName]);
            }
        }
        return $shippingRatesLayout;
    }
<item name="shipping-rates-validation" xsi:type="array">
                                                            <item name="children" xsi:type="array">
                                                                <item name="inchoo" xsi:type="array">
                                                                    <item name="component" xsi:type="string">Inchoo_Shipping/js/view/inchoo</item>
                                                                </item>
                                                            </item>
                                                        </item>
 
    private function processShippingChildrenComponents($shippingRatesLayout)
    {
        $activeCarriers = $this->getShippingConfig()->getActiveCarriers(
            $this->getStoreResolver()->getCurrentStoreId()
        );
        foreach (array_keys($shippingRatesLayout) as $carrierName) {
            $carrierKey = str_replace('-rates-validation', '', $carrierName);
            if (!array_key_exists($carrierKey, $activeCarriers)) {
                unset($shippingRatesLayout[$carrierName]);
            }
        }
        return $shippingRatesLayout;
    }
<item name="shipping-rates-validation" xsi:type="array">
      <item name="children" xsi:type="array">
            <item name="inchoo" xsi:type="array">
                <item name="component" xsi:type="string">Inchoo_Shipping/js/view/inchoo</item>
            </item>
      </item>
</item>
private function processShippingChildrenComponents($shippingRatesLayout)
{
    $activeCarriers = $this->getShippingConfig()->getActiveCarriers(
        $this->getStoreResolver()->getCurrentStoreId()
    );
    foreach (array_keys($shippingRatesLayout) as $carrierName) {
        $carrierKey = str_replace('-rates-validation', '', $carrierName);
        if (!array_key_exists($carrierKey, $activeCarriers)) {
            unset($shippingRatesLayout[$carrierName]);
        }
    }
    return $shippingRatesLayout;
}
1
source | link

I had the same problem. The problem is on your xml definition of the rates validation:

<item name="shipping-rates-validation" xsi:type="array">
                                                            <item name="children" xsi:type="array">
                                                                <item name="inchoo" xsi:type="array">
                                                                    <item name="component" xsi:type="string">Inchoo_Shipping/js/view/inchoo</item>
                                                                </item>
                                                            </item>
                                                        </item>

In your xml, when you define the js validator:

<item name="inchoo" xsi:type="array">

You must change the name to:

<item name="inchoo-rates-validation" xsi:type="array">

And inchoo must be the same as carrier code of your shipping method. The problem is when magento try lo find and load all validators in :

...vendor/magento/module-checkout/Block/Checkout/LayoutProcessor.php

on method processShippingChildrenComponents

    private function processShippingChildrenComponents($shippingRatesLayout)
    {
        $activeCarriers = $this->getShippingConfig()->getActiveCarriers(
            $this->getStoreResolver()->getCurrentStoreId()
        );
        foreach (array_keys($shippingRatesLayout) as $carrierName) {
            $carrierKey = str_replace('-rates-validation', '', $carrierName);
            if (!array_key_exists($carrierKey, $activeCarriers)) {
                unset($shippingRatesLayout[$carrierName]);
            }
        }
        return $shippingRatesLayout;
    }

If magento does not find the same name as carrier, unset the file in layout.

Regards

Mauro M. Martinez