Error happened when using the sample code in Github: Testing in Daml Lab1

I copied the code of Lab1, and Main under a project but got an error. Same thing happened when using the code in “Navigator” course.
How to deal with this?
Code in Lab1.daml

module Lab1 where 

import DA.Optional
import DA.Date (toDateUTC)

template CLPApplication 
    with 
        customer: Party 
        airline: Party 

        id: Text  --this is external id that is unique for a customer, e.g. driving-license no., SSN, etc.
        name: Text
        address: Text
        email: Text
        phone: Optional Text
        timestamp: Time 
        dob: Date 
       
    where 
        signatory customer
        observer airline 
         
        choice SubmitApplication: ContractId CLPApplication 
            with 
                appCustomer: Party 
                appAirline: Party

                customerId: Text
                customerName: Text
                customerAddress: Text
                customerEmail: Text
                customerPhone: Text
                appTimeStamp: Time 
                customerDob: Date 
            controller customer 
                do 
                    create CLPApplication  
                        with 
                            customer = appCustomer
                            airline = appAirline

                            id = customerId
                            name = customerName
                            address = customerAddress
                            email = customerEmail
                            phone = Some customerPhone
                            timestamp = appTimeStamp
                            dob = customerDob 
                        
        choice ReviewApplication: Optional (ContractId CLPAccount)
            controller airline 
                do 
                    account <- lookupByKey @CLPAccount (airline, id)
                    now <- getTime
                    if (isSome account) then 
                        return None
                    else do
                        account <- create CLPAccount with                                
                                timestamp = now                                 
                                points = 0   
                                ..
                        return (Some account)

template CLPAccount 
    with
        customer: Party 
        airline: Party 

        id: Text 
        name: Text
        address: Text
        email: Text
        phone: Optional Text
        timestamp: Time 
        dob: Date 
        points: Int

    where 
        signatory customer, airline 

        key (airline, id): (Party, Text)
        maintainer key._1


        choice AddPoints : ContractId CLPAccount 
            with 
                newPoints: Int 
            controller airline 
            do 
                create CLPAccount with 
                    points = points + newPoints
                    ..

template AirlineService 
    with 
        customer: Party
        airline: Party 
    where 
        signatory airline 
        observer customer 

        nonconsuming choice CreateBlankApplication: ContractId CLPApplication
            controller customer 
                do 
                    now <- getTime
                    create CLPApplication 
                        with 
                        customer 
                        airline 

                        id = ""
                        name = ""
                        address = ""
                        email = ""
                        phone = Some ""
                        timestamp = now
                        dob = toDateUTC now

Code in Main.daml

module Main where

import Daml.Script
import Lab1


-- Lab1 Problem 1
setup: Script ()
setup = script do 

  -- allocate parties with the given display name 
  airline <- allocatePartyWithHint "Epic Airlines" (PartyIdHint "EA")
  customer <- allocatePartyWithHint "Customer" (PartyIdHint "Cust")

  -- construct user-ids from text 
  airlineId <- validateUserId "Epic"
  aliceId <- validateUserId "Alice"

  -- create users with the given rights 
  createUser (User airlineId (Some airline)) [CanActAs airline]
  createUser (User aliceId (Some customer)) [CanActAs customer]

  
  submit airline do 
    createCmd AirlineService with 
        customer = customer
        airline = airline
  return ()

Error I got:
Script execution failed:
Unhandled exception: Daml.Script:InvalidUserId@1784e0500b69eb19eb1995f7ea11cb9ba0133f339dc0cf4da16a9e72e6c9e30f with
m =
“User ID “Epic” does not match regex “[a-z0-9@^$.!`-#+'~_|:]{1,128}””

Ledger time: 1970-01-01T00:00:00Z

@skyler, thank you very much for reporting the issue. We’ll fix it on Github asap.
The root cause is that validateUserId function requires the input text to be all lower case. To fix the problem one can either change the text value passed to the function to all lower case (replace “Epic” with “epic” and “Alice” with “alice”). Alternatively one can apply asciiToLower function to the input text before passing the result to validateUserId function.

airlineId <- validateUserId $ asciiToLower "Epic"
aliceId <- validateUserId $ asciiToLower "Alice"

In the latter case one would also need to add an import of DA.Text module, which contains asciiToLower function.

Upon closer look, the requirement for all lower case input for validateUserId function was enforced in earlier versions of Daml SDK. Starting from SDK v2.5.0 it’s possible to use upper case letters in the text value passed as argument to validateUserId function. So, instead of modifying the code in the Main module, as I suggested earlier, you can bump up the SDK version number in daml.yaml file in your project. You’ll need to save the daml.yaml file and restart VS Code for the changes to take effect. Or, instead of copying and pasting modules from the repo into your own project, you can clone the repo from Github. The repo includes daml.yaml file that specifies the version of Daml SDK, that the project was created with, as v2.6.1.

Thanks. I tried the solution and it worked!