I'm trying to create a new attribute as Image for category, I was able to create the attribute that attribute, but when I tried to upload an image it wasn't posible to save.

This is my code:
----------------
**Wage/Categorylist/Setup/InstallData.php**

    namespace Wage\Categorylist\Setup;
    
    use Magento\Framework\Module\Setup\Migration;
    use Magento\Framework\Setup\InstallDataInterface;
    use Magento\Framework\Setup\ModuleContextInterface;
    use Magento\Framework\Setup\ModuleDataSetupInterface;
    use Magento\Catalog\Setup\CategorySetupFactory;
    
    class InstallData implements InstallDataInterface
    {
        public function __construct(CategorySetupFactory $categorySetupFactory)
        {
            $this->categorySetupFactory = $categorySetupFactory;
        }
        public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
        {
            $installer = $setup;
            $installer->startSetup();
    
            $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]);
            $entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Category::ENTITY);
            $attributeSetId = $categorySetup->getDefaultAttributeSetId($entityTypeId);
            $categorySetup->removeAttribute(
                \Magento\Catalog\Model\Category::ENTITY, 'thumbnail' );
            $categorySetup->addAttribute(
                \Magento\Catalog\Model\Category::ENTITY, 'thumbnail', [
                    'type' => 'varchar',
                    'label' => 'Featured Image',
                    'input' => 'image',
                    'backend' => 'Magento\Catalog\Model\Category\Attribute\Backend\Image',
                    'required' => false,
                    'sort_order' => 5,
                    'global' => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE,
                    'group' => 'General Information',
                ]
            );
            $installer->endSetup();
        }
    }

**Wage/Categorylist/view/adminhtml/ui_component/category_form.xml**

    <?xml version="1.0" encoding="UTF-8"?>
    <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
        <fieldset name="content">
            <field name="thumbnail">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="dataType" xsi:type="string">string</item>
                        <item name="source" xsi:type="string">category</item>
                        <item name="label" xsi:type="string" translate="true">Thumbnail Image</item>
                        <item name="visible" xsi:type="boolean">true</item>
                        <item name="formElement" xsi:type="string">fileUploader</item>
                        <item name="elementTmpl" xsi:type="string">ui/form/element/uploader/uploader</item>
                        <item name="previewTmpl" xsi:type="string">Magento_Catalog/image-preview</item>
                        <item name="required" xsi:type="boolean">false</item>
                        <item name="sortOrder" xsi:type="number">30</item>
                        <item name="uploaderConfig" xsi:type="array">
                            <item name="url" xsi:type="url" path="categorylist/category_thumbnailimage/upload"/>
                        </item>
                    </item>
                </argument>
            </field>
        </fieldset>
    </form>   

**Wage/Categorylist/Controller/Adminhtml/Category/Thumbnailimage/Upload.php**

    namespace Wage\Categorylist\Controller\Adminhtml\Category\Thumbnailimage;
    
    use Magento\Framework\Controller\ResultFactory;
    
    /**
     * Class Upload
     */
    class Upload extends \Magento\Backend\App\Action
    {
        protected $baseTmpPath;
        protected $imageUploader;
        public function __construct(
            \Magento\Backend\App\Action\Context $context,
            \Magento\Catalog\Model\ImageUploader $imageUploader
        ) {
            $this->imageUploader = $imageUploader;
            parent::__construct($context);
    
        }
       public function execute() {
            try {
                $result = $this->imageUploader->saveFileToTmpDir('thumbnail');
                $result['cookie'] = [
                    'name' => $this->_getSession()->getName(),
                    'value' => $this->_getSession()->getSessionId(),
                    'lifetime' => $this->_getSession()->getCookieLifetime(),
                    'path' => $this->_getSession()->getCookiePath(),
                    'domain' => $this->_getSession()->getCookieDomain(),
                ];
            } catch (\Exception $e) {
                $result = ['error' => $e->getMessage(), 'errorcode' => $e->getCode()];
            }
            return $this->resultFactory->create(ResultFactory::TYPE_JSON)->setData($result);
       }
    }

**Wage/Categorylist/etc/di.xml**

    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
        <type name="Wage\Categorylist\Controller\Adminhtml\Category\Thumbnailimage\Upload">
            <arguments>
                <argument name="imageUploader" xsi:type="object">Magento\Catalog\CategoryImageUpload</argument>
            </arguments>
        </type>
        <virtualType name="Magento\Catalog\CategoryImageUpload" type="Magento\Catalog\Model\ImageUploader">
            <arguments>
                <argument name="baseTmpPath" xsi:type="string">catalog/tmp/category</argument>
                <argument name="basePath" xsi:type="string">catalog/category</argument>
                <argument name="allowedExtensions" xsi:type="array">
                    <item name="jpg" xsi:type="string">jpg</item>
                    <item name="jpeg" xsi:type="string">jpeg</item>
                    <item name="gif" xsi:type="string">gif</item>
                    <item name="png" xsi:type="string">png</item>
                </argument>
            </arguments>
        </virtualType>
    </config>

[![enter image description here][1]][1]


  [1]: https://i.sstatic.net/fRGM6.png

I get the following error

> jquery.js:9666 POST
> admin/categorylist/category_thumbnailimage/upload/k…9abae110ca00b7329cf2e97fc1b415f4d6dcadd9cdfe7abc8e356bd303bd4/?isAjax=true
> 404 (Forbidden)