Apollo Federated Gateway: @hasInverse -> is a type system directive, but only executable directives are permitted

When I start my apollo federated gateway docker container i get the following errors:

 > @ start /code
 > node index

 (node:18) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): GraphQLSchemaValidationError: [http://alpha:8081/graphql] @hasInverse -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @search -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @dgraph -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @id -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @withSubscription -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @secret -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @remote -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @remoteResponse -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @lambda -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION
 [http://alpha:8081/graphql] @lambdaOnMutate -> is a type system directive, but only executable directives are permitted. Executable directives exist for the following locations: QUERY, MUTATION, SUBSCRIPTION, FIELD, FRAGMENT_DEFINITION, FRAGMENT_SPREAD, INLINE_FRAGMENT, VARIABLE_DEFINITION

I see other people have successfully gotten apollo federation working with Dgraph’s GraphQL endpoint…can anyone point me towards what i might be doing wrong?

Dgraph version 21.03.1
Apollo Gateway (image: graphql/gateway:latest)

It appears the docker image I was using has an outdated version of the gateway…a better approach if using docker is to build your own container