I created a custom module with a custom table in magento 2.3.2 including grpahql schema.

I want to get the data using graphql by passing an argument.

I am getting the following error in Alatair GrapgQL client chrome extension.

{ "errors": [ { "message": "Cannot query field \"wordoftheday\" on type \"Wordoftheday\".", "category": "graphql", "locations": [ { "line": 3, "column": 5 } ] } ] }

I passed the query like below.

wordoftheday ( id : 1) {


type Query {
wordoftheday (
    id: Int @doc(description: "Current Day to show WOD in Home page")
): Wordoftheday @resolver(class: "Ayakil\\Wordoftheday\\Model\\Resolver\\Wordoftheday") @doc(description: "The Sales Order query returns information about customer all placed order")
type Wordoftheday @doc(description: "wod information") {
word : String  @doc(description: "word")
verb : String  @doc(description: "verb")
meaning : String  @doc(description: "meaning")
detail : String  @doc(description: "detail")


namespace Ayakil\Wordoftheday\Model\Resolver\DataProvider;
class Wordoftheday
protected $_wordofthedayFactory;

public function __construct(
    \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder,
    \Ayakil\Wordoftheday\Model\WordofthedayFactory $wordofthedayFactory
    $this->searchCriteriaBuilder = $searchCriteriaBuilder;
    $this->_wordofthedayFactory  = $wordofthedayFactory;

public function getWordoftheday( int $date_to_show)
    try {
        /* filter for all customer orders */
        //$searchCriteria = $this->searchCriteriaBuilder->addFilter('id', $date_to_show,'eq')->create();
        $wod = $this->_wordofthedayFactory->create();
        $collection = $wod->getCollection();

    } catch (NoSuchEntityException $e) {
        throw new GraphQlNoSuchEntityException(__($e->getMessage()), $e);
    return $collection;

What is my mistake here?please help me to short it out.

1 Answer 1


After a lot of searching, I found my mistake. My error was capturing the id in the resolver file.

private function getId(array $args): int
    if (!isset($args['id'])) {
        throw new GraphQlInputException(__('"id should be specified'));

    return (int)$args['id'];

$args['id'] here as per my graphQl schema I want to pass id, but I passed something else.

And also my passed query also wrong. I should pass like below to get the result as per my graphql schema.

query wordoftheday {
wordoftheday( id : 5){

I correct all my mistakes and got it up and run, to get a clear understanding please read How to create a Graphql schema by passing an argument for custom Magento 2 module with the custom table?.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.