Serverless deploy error: Role does not have a trust relationship allowing Cognito to assume the role

I have an existing Cognito User Pool. When a user signs up through the web app, I want this user ID to get added into our Postgres DB.
For this, I have written a Lambda function which should get triggered after the user confirms their email address. However, on trying to deploy this function using the serverless framework, I get the following error:

    CREATE_FAILED: PostDashsignupCustomCognitoUserPool1 (Custom::CognitoUserPool)
Received response status [FAILED] from custom resource. Message returned: Role does not have a trust relationship allowing Cognito to assume the role

I have followed the serverless docs to create this lambda trigger: Using Existing Pools

Following is the complete log of serverless deploy --verbose command:

Deploying cognito-signup-service to stage stage (eu-west-1)

Packaging
Excluding development dependencies for function "post-signup"
Generating custom CloudFormation resources
Retrieving CloudFormation stack
Uploading
Uploading CloudFormation file to S3
Uploading State file to S3
Uploading service post-signup.zip file to S3 (7.62 kB)
Uploading custom CloudFormation resources
Updating CloudFormation stack
Creating new change set
Waiting for new change set to be created
Change Set did not reach desired state, retrying
Executing created change set
  UPDATE_IN_PROGRESS - AWS::CloudFormation::Stack - cognito-signup-service-stage
  CREATE_IN_PROGRESS - AWS::IAM::Role - IamRoleCustomResourcesLambdaExecution
  CREATE_IN_PROGRESS - AWS::Logs::LogGroup - PostDashsignupLogGroup
  CREATE_IN_PROGRESS - AWS::IAM::Role - IamRoleLambdaExecution
  CREATE_IN_PROGRESS - AWS::IAM::Role - IamRoleCustomResourcesLambdaExecution
  CREATE_IN_PROGRESS - AWS::IAM::Role - IamRoleLambdaExecution
  CREATE_IN_PROGRESS - AWS::Logs::LogGroup - PostDashsignupLogGroup
  CREATE_COMPLETE - AWS::Logs::LogGroup - PostDashsignupLogGroup
  CREATE_COMPLETE - AWS::IAM::Role - IamRoleCustomResourcesLambdaExecution
  CREATE_COMPLETE - AWS::IAM::Role - IamRoleLambdaExecution
  CREATE_IN_PROGRESS - AWS::Lambda::Function - CustomDashresourceDashexistingDashcupLambdaFunction
  CREATE_IN_PROGRESS - AWS::Lambda::Function - PostDashsignupLambdaFunction
  CREATE_IN_PROGRESS - AWS::Lambda::Function - CustomDashresourceDashexistingDashcupLambdaFunction
  CREATE_IN_PROGRESS - AWS::Lambda::Function - PostDashsignupLambdaFunction
  CREATE_COMPLETE - AWS::Lambda::Function - CustomDashresourceDashexistingDashcupLambdaFunction
  CREATE_COMPLETE - AWS::Lambda::Function - PostDashsignupLambdaFunction
  CREATE_IN_PROGRESS - AWS::Lambda::Version - PostDashsignupLambdaVersionj0JUrdtyYVkJtCoc0cT2GnzKGO2yz469YbZ58Jhw
  CREATE_IN_PROGRESS - Custom::CognitoUserPool - PostDashsignupCustomCognitoUserPool1
  CREATE_IN_PROGRESS - AWS::Lambda::Version - PostDashsignupLambdaVersionj0JUrdtyYVkJtCoc0cT2GnzKGO2yz469YbZ58Jhw
  CREATE_COMPLETE - AWS::Lambda::Version - PostDashsignupLambdaVersionj0JUrdtyYVkJtCoc0cT2GnzKGO2yz469YbZ58Jhw
  CREATE_IN_PROGRESS - Custom::CognitoUserPool - PostDashsignupCustomCognitoUserPool1
  CREATE_FAILED - Custom::CognitoUserPool - PostDashsignupCustomCognitoUserPool1
  UPDATE_ROLLBACK_IN_PROGRESS - AWS::CloudFormation::Stack - cognito-signup-service-stage
  UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS - AWS::CloudFormation::Stack - cognito-signup-service-stage
  DELETE_SKIPPED - AWS::Lambda::Version - PostDashsignupLambdaVersionj0JUrdtyYVkJtCoc0cT2GnzKGO2yz469YbZ58Jhw
  DELETE_IN_PROGRESS - AWS::CloudFormation::CustomResource - PostDashsignupCustomCognitoUserPool1
  DELETE_FAILED - AWS::CloudFormation::CustomResource - PostDashsignupCustomCognitoUserPool1
  DELETE_IN_PROGRESS - AWS::Lambda::Function - CustomDashresourceDashexistingDashcupLambdaFunction
  DELETE_IN_PROGRESS - AWS::Lambda::Function - PostDashsignupLambdaFunction
  DELETE_COMPLETE - AWS::Lambda::Function - PostDashsignupLambdaFunction
  DELETE_COMPLETE - AWS::Lambda::Function - CustomDashresourceDashexistingDashcupLambdaFunction
  DELETE_IN_PROGRESS - AWS::IAM::Role - IamRoleLambdaExecution
  DELETE_IN_PROGRESS - AWS::Logs::LogGroup - PostDashsignupLogGroup
  DELETE_IN_PROGRESS - AWS::IAM::Role - IamRoleCustomResourcesLambdaExecution
  DELETE_COMPLETE - AWS::Logs::LogGroup - PostDashsignupLogGroup
  DELETE_COMPLETE - AWS::IAM::Role - IamRoleCustomResourcesLambdaExecution
  DELETE_COMPLETE - AWS::IAM::Role - IamRoleLambdaExecution
  DELETE_IN_PROGRESS - AWS::CloudFormation::CustomResource - PostDashsignupCustomCognitoUserPool1
  DELETE_COMPLETE - AWS::CloudFormation::CustomResource - PostDashsignupCustomCognitoUserPool1
  UPDATE_ROLLBACK_COMPLETE - AWS::CloudFormation::Stack - cognito-signup-service-stage

× Stack cognito-signup-service-stage failed to deploy (263s)
Environment: win32, node 16.17.0, framework 3.22.0 (local) 3.22.0v (global), plugin 6.2.2, SDK 4.3.2
Credentials: Local, "stage" profile
Docs:        docs.serverless.com
Support:     forum.serverless.com
Bugs:        github.com/serverless/serverless/issues

Error:
CREATE_FAILED: PostDashsignupCustomCognitoUserPool1 (Custom::CognitoUserPool)
Received response status [FAILED] from custom resource. Message returned: Role does not have a trust relationship allowing Cognito to assume the role

Following is the serverless.yml file:

service: cognito-signup-service
configValidationMode: error
provider:
  name: aws
  runtime: python3.8
  region: eu-west-1
  timeout: 10
  stage: ${opt:stage, 'dev'}
  environment:
    STAGE: ${self:provider.stage}
  iamRoleStatements:
    - Effect: "Allow"
      Action:
        - "ssm:GetParameter"
      Resource:
        - "arn:aws:ssm:${aws:region}:${aws:accountId}:parameter/${self:provider.stage}-db-credentials-secret-arn"
        - "arn:aws:ssm:${aws:region}:${aws:accountId}:parameter/${self:provider.stage}-db-*"
    - Effect: "Allow"
      Action:
        - "secretsmanager:GetSecretValue"
      Resource: "arn:aws:secretsmanager:${aws:region}:${aws:accountId}:secret:${self:provider.stage}-db-credentials-*"

functions:
  post-signup:
    handler: src.handlers.post_signup.handler
    iamRoleStatementsInherit: true
    events:
      - cognitoUserPool:
          pool: ${env:USER_POOL_NAME}
          trigger: PostConfirmation
          existing: true
          forceDeploy: true
    layers:
      # psycopg2 layer
      - arn:aws:lambda:eu-west-1:770693421928:layer:Klayers-p38-aws-psycopg2:1
      # jsonschema layer
      - arn:aws:lambda:eu-west-1:770693421928:layer:Klayers-p38-jsonschema:12

useDotenv: true

plugins:
  - serverless-iam-roles-per-function
  - serverless-dotenv-plugin

package:
  individually: true
  patterns:
    - "!node_modules/**"
    - "!src/test/**"
    - "!package.json"
    - "!package-lock.json"
    - "!.coverage"
    - "!.coveragerc"
    - "!run_tests.sh"

Its hard to identify why it is only failing to create the trigger. Is something missing in the serverless.yml file?
I have not found a solution to this error since a while now. I would really appreciate some help.