Every Mappings attribute must be a String or a List

Hello,
I get the following error:

The CloudFormation template is invalid: Template format error: Every Mappings attribute must be a String or a List.

When I try to deploy the following resource

---
AWSTemplateFormatVersion: "2010-09-09"

Description: IAM Roles and Policies

Mappings:
  roles:
    office:
      administrator:
        Fn::Join:
          - ''
          - - 'arn:aws:iam::'
            - '#{AWS::AccountId}'
            - ':role/Administrator'

Resources:
  PolicyGroupAdmin:
    Type: AWS::IAM::Policy
    DependsOn:
    - GroupAdmin
    Properties:
      Groups:
        - Ref: GroupAdmin
      PolicyName: Admin
      PolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Sid: AllowSwitchRoleToAdmin
            Effect: Allow
            Action:
              - sts:AssumeRole
            Resource:
              - !FindInMap [roles, office, administrator]

If I use:

Mappings:
  roles:
    office:
      administrator: 'arn:aws:iam::****:role/Administrator'

this works, so how do i pass the AWS::AccountId inside a mapping correctly?

any advise is much appreciated

I’m no expert, but looking at some of my joins, I use Ref: AWS::AccountId successfully … so try something like this?

  roles:
    office:
      administrator:
        Fn::Join:
          - ''
          - - 'arn:aws:iam::'
            - Ref: AWS::AccountId
            - ':role/Administrator'

Yeah I tried all these variations but it didn’t work, although the same works if it is in the actual resource and not a mapping, so i am not sure what is happening