Zend certified PHP/Magento developer

Admin Grid wont show and getting “Request validation failed for action” error in debug

I was trying to create an admin grid in the adminhtml trying to learn how they function and work and I ran into an issue following this guide: Mageplaza. I’ve been trying to debug where the issue is and, to the best of my knowledge I found that the issue lies somewhere in the core files of my module which are:

  1. di.xml
  2. layout files (or their name)
  3. menu.xml
  4. routes.xml

And here is my code, I am sharing mine because, of course, I made adjustments to the naming of the fields and the database fields.

Request/Price/Controller/Adminhtml/Blog/Index.php

<?php
namespace RequestPriceControllerAdminhtmlBlog;
use MagentoBackendAppAction;
use MagentoBackendAppActionContext;
use MagentoFrameworkViewResultPageFactory;

class Index extends Action
{
    protected $resultPageFactory = false;

public function __construct(
    Context     $context,
    PageFactory $resultPageFactory
)
{
    parent::__construct($context);
    $this->resultPageFactory = $resultPageFactory;
}

public function execute()
{
    $resultPage = $this->resultPageFactory->create();
    $resultPage->getConfig()->getTitle()->prepend((__('Posts')));

    return $resultPage;
}
}

Request/Price/etc/adminhtml/menu.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
<menu>
    <add id="Request_Price::menu"
         title="Request Price" module="Request_Price"
         sortOrder="10"
         resource="Magento_Customer::customer"/>

    <add id="Request_Price::menu_item"
         title="Price Requests" module="Request_Price"
         sortOrder="10" parent="Request_Price::menu"
         action="request_price/create/index"
         resource="Request_Price::menu_item"/>
</menu>

Request/Price/etc/adminhtml/routes.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="admin">
        <route id="request_price" frontName="request_price">
            <module name="Request_Price"/>
        </route>
    </router>
</config>

Request/Price/etc/di.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="MagentoFrameworkViewElementUiComponentDataProviderCollectionFactory">
        <arguments>
            <argument name="collections" xsi:type="array">
                <item name="request_price_listing_data_source" xsi:type="string">
                    RequestPriceModelResourceModelPriceCollection
                </item>
            </argument>
        </arguments>
    </type>
    <virtualType name="RequestPriceModelResourceModelPriceCollection"
                 type="MagentoFrameworkViewElementUiComponentDataProviderSearchResult">
        <arguments>
            <argument name="mainTable" xsi:type="string">request_price</argument>
            <argument name="resourceModel" xsi:type="string">RequestPriceModelResourceModelPrice</argument>
        </arguments>
    </virtualType>
</config>

Request/Price/Setup/InstallSchema.php

<?php

namespace RequestPriceSetup;

use MagentoFrameworkDBAdapterAdapterInterface;
use MagentoFrameworkDBDdlTable;
use MagentoFrameworkSetupInstallSchemaInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupSchemaSetupInterface;
use Zend_Db_Exception;

class InstallSchema implements InstallSchemaInterface
{

    /**
     * @throws Zend_Db_Exception
     */
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $installer = $setup;
        $installer->startSetup();
        if (!$installer->tableExists('request_price')) {
            $table = $installer->getConnection()->newTable(
                $installer->getTable('request_price')
            )
                ->addColumn(
                    'request_id',
                    Table::TYPE_INTEGER,
                    null,
                    [
                        'identity' => true,
                        'nullable' => false,
                        'primary' => true,
                        'unsigned' => true,
                    ],
                    'Request'
                )
                ->addColumn(
                    'username',
                    Table::TYPE_TEXT,
                    255,
                    ['nullable' => false],
                    'username'
                )
                ->addColumn(
                    'email',
                    Table::TYPE_TEXT,
                    255,
                    ['nullable' => false],
                    'Email '
                )
                ->addColumn(
                    'message_area',
                    Table::TYPE_TEXT,
                    500,
                    ['nullable' => true],
                    'Message'
                )
                ->addColumn(
                    'Name',
                    Table::TYPE_TEXT,
                    255,
                    ['nullable' => false],
                    'Name'
                )
                ->addColumn(
                    'created_at',
                    Table::TYPE_TIMESTAMP,
                    null,
                    ['nullable' => false, 'default' => Table::TIMESTAMP_INIT],
                    'Created At'
                )
                ->addColumn(
                    'status',
                    Table::TYPE_TEXT,
                    255,
                    ['nullable' => false],
                    'status'
                )
                ->setComment('Request Table');
            $installer->getConnection()->createTable($table);

            $installer->getConnection()->addIndex(
                $installer->getTable('request_price'),
                $setup->getIdxName(
                    $installer->getTable('request_price'),
                    ['username', 'email', 'message_area', 'Name'],
                    AdapterInterface::INDEX_TYPE_FULLTEXT
                ),
                ['username', 'email', 'message_area', 'Name'],
                AdapterInterface::INDEX_TYPE_FULLTEXT
            );
        }
        $installer->endSetup();
    }
}

But I keep getting this error every time I try to access my menu item in my debug.log

[2021-10-10 12:20:48] main.DEBUG: Request validation failed for action “MagentoBackendControllerAdminhtmlIndexIndexInterceptor” {“exception”:”[object] (MagentoFrameworkAppRequestInvalidRequestException(code: 0): Invalid request received at D:Workmag6vendormagentomodule-backendAppRequestBackendValidator.php:176)”} []

This is my file system, just in case I got the name of something wrong

File System

I Would appreciate your help, fellow Magento developers. Thanks in advance.