Repository: ddev/ddev (go)

Issue:
Dotenv flag checking is not granular enough in it's
### Preliminary checklist

- [x] I am using the latest stable version of DDEV (see [upgrade guide](https://ddev.readthedocs.io/en/stable/users/install/ddev-upgrade/))
- [x] I have searched [existing issues](https://github.com/ddev/ddev/issues)
- [x] I have checked the [troubleshooting guide](https://ddev.readthedocs.io/en/stable/users/usage/troubleshooting/)
- [x] I have run `ddev debug test` to include output below

### Output of `ddev debug test`

<details><summary>Expand `ddev debug test` diagnostic information</summary>

```


======== Output file will be in /var/folders/4f/5x5m6bnd4qgd4y_0yhj_xb3w0000gn/T/ddev-debug-test.txt ========


======== Existing project config ========
ddev installation alternate locations:
/opt/homebrew/bin/ddev

These config files were loaded for project 511-org: [/Users/bob/ddev_projects/511_org/.ddev/config.yaml]
name: 511-org
type: drupal
docroot: web
php_version: 8.2
webserver_type: nginx-fpm
webimage: ddev/ddev-webserver:v1.24.2
additional_hostnames: []
additional_fqdns: []
database: {mariadb 10.6}
hooks: map[post-start:[map[exec:export CWD=`pwd` && git config --global --add safe.directory $CWD]]]
project_tld: ddev.site
use_dns_when_possible: true
composer_version: 2
nodejs_version: 22
default_container_timeout: 120


======== existing project customizations ========
.ddev/.env.solr


======== installed DDEV add-ons ========
┌────────┬─────────┬─────────────────────────────────────────────────────────────────────────────┬───────────────────────────┐
│ ADD-ON │ VERSION │ REPOSITORY                                                                  │ DATE INSTALLED            │
├────────┼─────────┼─────────────────────────────────────────────────────────────────────────────┼───────────────────────────┤
│ solr   │         │ https://github.com/UltraBob/ddev-solr/archive/refs/tags/test-release.tar.gz │ 2025-01-29T21:34:07-08:00 │
└────────┴─────────┴─────────────────────────────────────────────────────────────────────────────┴───────────────────────────┘



======== mutagen situation ========
looking for #ddev-generated in mutagen.yml in project /Users/bob/ddev_projects/511_org
#ddev-generated
unmodified #ddev-generated found in .ddev/mutagen/mutagen.yml


======== Creating dummy project named tryddevproject-2759 in ../tryddevproject-2759 ========
Creating a new DDEV project config in the current directory (/Users/bob/ddev_projects/tryddevproject-2759)
Once completed, your configuration will be written to /Users/bob/ddev_projects/tryddevproject-2759/.ddev/config.yaml

Created docroot directory at /Users/bob/ddev_projects/tryddevproject-2759/web
Configuring a 'php' project named 'tryddevproject-2759' with docroot 'web' at '/Users/bob/ddev_projects/tryddevproject-2759/web'.
For full details use 'ddev describe'.
Configuration complete. You may now run 'ddev start'.


======== OS Information ========
Darwin MacBookPro.lan 24.2.0 Darwin Kernel Version 24.2.0: Fri Dec  6 19:01:59 PST 2024; root:xnu-11215.61.5~2/RELEASE_ARM64_T6000 arm64
ProductName:		macOS
ProductVersion:		15.2
BuildVersion:		24C101


======== User information ========
uid=501(bob) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),400(com.apple.access_remote_ae)


======== DDEV version ========
 ITEM             VALUE                                    
 DDEV version     v1.24.2                                  
 architecture     arm64                                    
 cgo_enabled      0                                        
 db               ddev/ddev-dbserver-mariadb-10.11:v1.24.2 
 ddev-ssh-agent   ddev/ddev-ssh-agent:v1.24.2              
 docker           27.4.1                                   
 docker-api       1.47                                     
 docker-compose   v2.32.4                                  
 docker-platform  orbstack                                 
 global-ddev-dir  /Users/bob/.ddev                         
 mutagen          0.18.0                                   
 os               darwin                                   
 router           ddev/ddev-traefik-router:v1.24.2         
 web              ddev/ddev-webserver:v1.24.2              



======== proxy settings ========

 HTTP_PROXY=''
 HTTPS_PROXY=''
 http_proxy=''
 NO_PROXY=''
 


======== DDEV global info ========
developer-mode=false
fail-on-hook-fail=false
instrumentation-opt-in=true
instrumentation-queue-size=0
instrumentation-reporting-interval=0s
instrumentation-user=
internet-detection-timeout-ms=3000
last-started-version=v1.24.2
letsencrypt-email=
mailpit-http-port=8025
mailpit-https-port=8026
mkcert-caroot=/Users/bob/Library/Application Support/mkcert
no-bind-mounts=false
omit-containers=[]
performance-mode=mutagen
project-tld=ddev.site
required-docker-compose-version=v2.32.4
router-bind-all-interfaces=false
router-http-port=8080
router-https-port=4433
simple-formatting=false
table-style=default
traefik-monitor-port=10999
use-docker-compose-from-path=false
use-hardened-images=false
use-letsencrypt=false
wsl2-no-windows-hosts-mgt=false
xdebug-ide-location=


======== DOCKER provider info ========
docker client location: lrwxr-xr-x@ 1 bob  admin  34 Jan 30 09:14 /opt/homebrew/bin/docker -> ../Cellar/docker/27.5.1/bin/docker

docker client alternate locations:
/opt/homebrew/bin/docker
/usr/local/bin/docker
/Users/bob/.orbstack/bin/docker
/Users/bob/.orbstack/bin/docker

Docker provider: orbstack
docker version: 
Client: Docker Engine - Community
 Version:           27.5.1
 API version:       1.47
 Go version:        go1.23.5
 Git commit:        9f9e405801
 Built:             Tue Jan 21 23:46:20 2025
 OS/Arch:           darwin/arm64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          27.4.1
  API version:      1.47 (minimum version 1.24)
  Go version:       go1.22.10
  Git commit:       c710b88
  Built:            Tue Dec 17 15:45:02 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          v2.0.2
  GitCommit:        c507a0257ea6462fbd6f5ba4f5c74facb04021f4
 runc:
  Version:          1.2.4
  GitCommit:        6c52b3fc541fb26fe8c374d5f58112a0a5dbda66
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

DOCKER_DEFAULT_PLATFORM=notset
Version: 1.9.5 (1090500)
Commit: 8276a76896800e4a12df9d35065c7458488ac010 (v1.9.5)
Docker platform: orbstack
Using Docker context: default (unix:///Users/bob/.orbstack/run/docker.sock)
docker-compose: v2.32.4
Using DOCKER_HOST=unix:///Users/bob/.orbstack/run/docker.sock
Docker version: 27.4.1
Able to run simple container that mounts a volume.
Able to use internet inside container.
Docker disk space:Filesystem                Size      Used Available Use% Mounted on
overlay                 252.7G    120.6G    132.1G  48% /


======== Existing docker containers ========
CONTAINER ID   IMAGE                                                 COMMAND                  CREATED        STATUS                      PORTS                                                                     NAMES
564514e254c8   bitnami/nginx:1.17.10-debian-10-r52                   "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_edge_ssl_1
c7ee043e22f3   wodby/varnish:4.1                                     "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_edge_1
0d264190f93b   phpmyadmin/phpmyadmin:5.1.1                           "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_pma_1
c88eb7ec045c   devwithlando/pantheon-index:8.8-4                     "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_index_1
fa5f9fdb1a78   mailhog/mailhog:v1.0.1                                "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_mailhog_1
110dd17e1995   mariadb:10.6.7                                        "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_database_1
bef852e866f7   node:14                                               "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_node_1
cf9df539b059   redis:6                                               "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_cache_1
f575f6ceaf84   bitnami/nginx:1.25.3-debian-11-r1                     "/lando-entrypoint.s…"   7 weeks ago    Created                                                                                               511org_appserver_nginx_1
9f9d4830b12f   devwithlando/pantheon-appserver:8.2-4                 "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511org_appserver_1
f95bbc23da65   redis:6                                               "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_tyk-redis_1
a5759d2c53ea   robinn/phpcacheadmin:latest                           "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_phpcacheadmin_1
ac481e1b72f0   bitnami/apache:2.4.41-debian-10-r52                   "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_mserv_1
3cacb44f25c1   tykio/tyk-dashboard:v5.0.4                            "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_tyk-dashboard_1
f1b815568b56   tykio/tyk-pump-docker-pub:v1.5.1                      "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_tyk-pump_1
d5f269a2cb20   bitnami/mongodb:4.4.9-debian-10-r10                   "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_tyk-mongo_1
593748ac6a59   golang:1.16                                           "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_tools_1
03712e578e1b   tykio/tyk-gateway:v5.0.4                              "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_tyk-gateway_1
7f3d48f432b0   tykio/tyk-plugin-compiler:v5.0.4                      "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_tyk-compiler_1
d7d402d49919   node:14                                               "/lando-entrypoint.s…"   7 weeks ago    Exited (137) 7 weeks ago                                                                              511api_test_1
8ffae35fdfc1   traefik:2.2.0                                         "/lando-entrypoint.s…"   2 months ago   Up 41 hours                 127.0.0.1:80->80/tcp, 127.0.0.1:443->443/tcp, 127.0.0.1:32795->8080/tcp   landoproxyhyperion5000gandalfedition_proxy_1
1c68848ab33f   bitnami/nginx:1.17.10-debian-10-r52                   "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_edge_ssl_1
df95338b64a6   wodby/varnish:4.1                                     "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_edge_1
44bd27e97f0f   mailhog/mailhog:v1.0.1                                "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_mailhog_1
eca23e791ef6   phpmyadmin/phpmyadmin:5.1.1                           "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_pma_1
5afd1897df9d   node:14                                               "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_node_1
4bc1fe477c7d   a8bcdf9b3bfd                                          "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_cache_1
7fe75c5bfbe7   devwithlando/pantheon-index:8.8-4                     "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_index_1
795bb2c94700   bitnami/nginx:1.25.3-debian-11-r1                     "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_appserver_nginx_1
2c1a9d287b80   mariadb:10.4.21                                       "/lando-entrypoint.s…"   2 months ago   Exited (0) 2 months ago                                                                               ignitedd9_database_1
889fab27d189   solr:8                                                "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_solr_index_1
46726deb4b5d   devwithlando/pantheon-appserver:8.1-4                 "/lando-entrypoint.s…"   2 months ago   Exited (137) 2 months ago                                                                             ignitedd9_appserver_1
c06fa9d98acc   bitnami/nginx:1.17.10-debian-10-r52                   "/lando-entrypoint.s…"   3 months ago   Up 41 hours                 8080/tcp, 8443/tcp, 127.0.0.1:32804->443/tcp                              settlenet_edge_ssl_1
f8002a7610bd   wodby/varnish:4.1                                     "/lando-entrypoint.s…"   3 months ago   Up 41 hours                 6081-6082/tcp, 127.0.0.1:32803->80/tcp                                    settlenet_edge_1
c17950230a34   selenium/standalone-chrome-debug:3.11.0-californium   "/opt/bin/entry_poin…"   3 months ago   Up 41 hours                 127.0.0.1:4444->4444/tcp, 127.0.0.1:5900->5900/tcp                        settlenet_chromedriver_1
9d700ecccd0e   mariadb:10.6.7                                        "/lando-entrypoint.s…"   3 months ago   Up 41 hours                 127.0.0.1:32798->3306/tcp                                                 settlenet_database_1
cdc3dda0c554   devwithlando/pantheon-index:8.8-4                     "/lando-entrypoint.s…"   3 months ago   Up 41 hours                 127.0.0.1:32797->8983/tcp                                                 settlenet_index_1
d95595d5260f   a8bcdf9b3bfd                                          "/lando-entrypoint.s…"   3 months ago   Up 41 hours                 127.0.0.1:32799->6379/tcp                                                 settlenet_cache_1
06a97f70bb5a   mailhog/mailhog:v1.0.1                                "/lando-entrypoint.s…"   3 months ago   Up 41 hours                 1025/tcp, 8025/tcp, 127.0.0.1:32796->80/tcp                               settlenet_mailhog_1
e2ab619fb83d   bitnami/nginx:1.25.3-debian-11-r1                     "/lando-entrypoint.s…"   3 months ago   Up 41 hours                 8080/tcp, 8443/tcp, 127.0.0.1:32800->80/tcp, 127.0.0.1:32801->443/tcp     settlenet_appserver_nginx_1
11dd336b1ae5   devwithlando/pantheon-appserver:8.2-4                 "/lando-entrypoint.s…"   3 months ago   Up 41 hours                 9000/tcp                                                                  settlenet_appserver_1
4aa82492e4c6   node:10                                               "/lando-entrypoint.s…"   3 months ago   Up 41 hours                                                                                           settlenet_frontendbuild_1


======== mkcert information ========
/opt/homebrew/bin/mkcert
CAROOT= WSLENV= JAVA_HOME=
/Users/bob/Library/Application Support/mkcert
total 16
-r--------  1 bob  staff  2484 Aug 23  2022 rootCA-key.pem
-rw-r--r--  1 bob  staff  1696 Aug 23  2022 rootCA.pem


======== ping attempt on ddev.site ========
PING dkdkd.ddev.site (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.079 ms

--- dkdkd.ddev.site ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.079/0.079/0.079/nan ms


======== curl information ========
/usr/bin/curl


======== ddev debug rebuild ========
Rebuilding project images...
Rebuilding project tryddevproject-2759 with `/Users/bob/.ddev/bin/docker-compose -f /Users/bob/ddev_projects/tryddevproject-2759/.ddev/.ddev-docker-compose-full.yaml --progress plain build web --no-cache`
#0 building with "default" instance using docker driver

#1 [web internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.58kB done
#1 DONE 0.0s

#2 [web internal] load metadata for docker.io/ddev/ddev-webserver:v1.24.2
#2 DONE 0.0s

#3 [web internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [web  1/10] FROM docker.io/ddev/ddev-webserver:v1.24.2
#4 CACHED

#5 [web  2/10] RUN getent group tty || groupadd tty
#5 0.111 tty:x:5:
#5 DONE 0.2s

#6 [web  3/10] RUN (groupadd --gid 20 "bob" || groupadd "bob" || true) && (useradd -G tty -l -m -s "/bin/bash" --gid "bob" --comment '' --uid 501 "bob" || useradd -G tty -l -m -s "/bin/bash" --gid "bob" --comment '' "bob" || useradd  -G tty -l -m -s "/bin/bash" --gid "20" --comment '' "bob" || useradd -G tty -l -m -s "/bin/bash" --comment '' bob )
#6 0.114 groupadd: GID '20' already exists
#6 0.135 useradd warning: bob's uid 501 outside of the UID_MIN 1000 and UID_MAX 60000 range.
#6 DONE 0.2s

#7 [web  4/10] RUN mkdir -p /home/bob && chown bob /home/bob && chmod 600 /home/bob/.pgpass
#7 DONE 0.1s

#8 [web  5/10] RUN START_SCRIPT_TIMEOUT=30 mariadb-client-install.sh || true
#8 0.111 This script is not intended to run with mariadb:10.11
#8 DONE 0.1s

#9 [web  6/10] RUN export XDEBUG_MODE=off; composer self-update --stable || composer self-update --stable || true; composer self-update --2 || log-stderr.sh composer self-update --2 || true
#9 0.621 Storing "stable" as default update channel for the next self-update run.
#9 0.970 Upgrading to version 2.8.5 (stable channel).
#9 1.125    
#9 1.704 Use composer self-update --rollback to return to version 2.8.4
#9 2.142 You are already using the latest available Composer version 2.8.5 (2.x channel).
#9 DONE 2.2s

#10 [web  7/10] RUN timeout 30 apt-get update || true
#10 0.495 Get:1 https://packages.sury.org/php bookworm InRelease [7551 B]
#10 0.505 Get:2 http://deb.debian.org/debian bookworm InRelease [151 kB]
#10 0.578 Get:3 https://packages.sury.org/php bookworm/main arm64 Packages [249 kB]
#10 0.600 Get:4 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
#10 0.625 Get:5 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
#10 0.651 Get:6 http://deb.debian.org/debian bookworm/main arm64 Packages [8693 kB]
#10 0.766 Get:8 http://nginx.org/packages/debian bookworm InRelease [2869 B]
#10 0.865 Get:9 http://deb.debian.org/debian bookworm-updates/main arm64 Packages [13.3 kB]
#10 0.866 Get:10 http://deb.debian.org/debian-security bookworm-security/main arm64 Packages [239 kB]
#10 0.938 Get:7 https://dlm.mariadb.com/repo/mariadb-server/10.11/repo/debian bookworm InRelease [4625 B]
#10 0.959 Get:11 http://nginx.org/packages/debian bookworm/nginx arm64 Packages [15.7 kB]
#10 1.224 Get:12 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg InRelease [129 kB]
#10 1.383 Get:13 https://dlm.mariadb.com/repo/mariadb-server/10.11/repo/debian bookworm/main arm64 Packages [34.5 kB]
#10 1.532 Get:14 https://apt.postgresql.org/pub/repos/apt bookworm-pgdg/main arm64 Packages [344 kB]
#10 1.774 Get:15 https://dlm.mariadb.com/repo/mariadb-server/10.11/repo/debian bookworm/main amd64 Packages [41.2 kB]
#10 2.206 Get:16 https://dl.cloudsmith.io/public/platformsh/cli/deb/debian bookworm InRelease [3675 B]
#10 2.324 Get:17 https://dl.cloudsmith.io/public/platformsh/upsun-cli/deb/debian bookworm InRelease [3681 B]
#10 2.464 Get:18 https://dl.cloudsmith.io/public/symfony/stable/deb/debian bookworm InRelease [4422 B]
#10 2.585 Get:19 https://dl.cloudsmith.io/public/platformsh/cli/deb/debian bookworm/main arm64 Packages [4355 B]
#10 2.676 Get:20 https://dl.cloudsmith.io/public/platformsh/upsun-cli/deb/debian bookworm/main arm64 Packages [3336 B]
#10 2.772 Get:21 https://dl.cloudsmith.io/public/symfony/stable/deb/debian bookworm/main arm64 Packages [8048 B]
#10 2.786 Fetched 10.1 MB in 3s (3853 kB/s)
#10 2.786 Reading package lists...
#10 DONE 3.3s

#11 [web  8/10] RUN curl -I https://www.google.com
#11 0.127   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
#11 0.127                                  Dload  Upload   Total   Spent    Left  Speed
#11 0.127 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
#11 0.196 HTTP/2 200 
#11 0.196 content-type: text/html; charset=ISO-8859-1
#11 0.196 content-security-policy-report-only: object-src 'none';base-uri 'self';script-src 'nonce-g-NI_kqZ_R_d6Ziz8ieDzw' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
#11 0.196 accept-ch: Sec-CH-Prefers-Color-Scheme
#11 0.196 p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
#11 0.196 date: Thu, 30 Jan 2025 17:28:24 GMT
#11 0.196 server: gws
#11 0.196 x-xss-protection: 0
#11 0.196 x-frame-options: SAMEORIGIN
#11 0.196 expires: Thu, 30 Jan 2025 17:28:24 GMT
#11 0.196 cache-control: private
#11 0.196 set-cookie: AEC=AVcja2fGO9ZKRptmBn9vGK98-s1RDsgldBEMHvzjZnkDi9_2cYJNR5kJJpw; expires=Tue, 29-Jul-2025 17:28:24 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
#11 0.196 set-cookie: NID=521=xWH54v59RMGjXaLdMmWAw7-h7DEp2IA0G09SVaPSD9ERArE-anzvgleTkmt1mT5Q8dHMRrX8ROzqMV9UjenQdZ86qMSXU4ZJpy_cmZp8PgE2PSdUcuFM7tIxTZy9wbXdfg3WzwCTd00CKoj6db-2ntEO9dkoihGzzJ_od5KHXyW5hD0bcId4XFvpZZQdXeNJiER11dAx; expires=Fri, 01-Aug-2025 17:28:24 GMT; path=/; domain=.google.com; HttpOnly
#11 0.196 alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
#11 0.196 
#11 DONE 0.2s

#12 [web  9/10] RUN chmod 777 /run/php /var/log
#12 DONE 0.1s

#13 [web 10/10] RUN mkdir -p /tmp/xhprof && chmod -R ugo+w /etc/php /var/lib/php /tmp/xhprof
#13 DONE 0.7s

#14 [web] exporting to image
#14 exporting layers 0.1s done
#14 writing image sha256:d8291ab59fa220f9cb1e1f32b0d40fdc718e117703c0b27b61ad498bb2c09a15 done
#14 naming to docker.io/ddev/ddev-webserver:v1.24.2-tryddevproject-2759-built done
#14 DONE 0.1s

#15 [web] resolving provenance for metadata file
#15 DONE 0.0s
 web  Built
Rebuilt Docker cache for project tryddevproject-2759 in 8s
Network ddev_default created
 Container ddev-ssh-agent  Created
 Container ddev-ssh-agent  Started
ssh-agent container is running: If you want to add authentication to the ssh-agent container, run 'ddev auth ssh' to enable your keys.
Using custom web-build configuration: [
	/Users/bob/ddev_projects/tryddevproject-2759/.ddev/web-build/Dockerfile.test
]
Custom configuration is updated on restart.
If you don't see your custom configuration taking effect, run 'ddev restart'.
v1.24.2: Pulling from ddev/ddev-dbserver-mariadb-10.11
a186900671ab: Already exists
5c38f11f7a7d: Pulling fs layer
2579e9462cd3: Pulling fs layer
c232dcc02662: Pulling fs layer
98204272c2f5: Pulling fs layer
d0cb29f83d29: Pulling fs layer
919c5864bdb3: Pulling fs layer
8dca10932c1d: Pulling fs layer
4f4fb700ef54: Pulling fs layer
0b78cbe1e683: Pulling fs layer
69cce76da85b: Pulling fs layer
c59b92a8360f: Pulling fs layer
5da54d72aa35: Pulling fs layer
5d1f80ccae8e: Pulling fs layer
7f11d14cb782: Pulling fs layer
a78096b8af42: Pulling fs layer
8f1f2601e95b: Pulling fs layer
75902228e91d: Pulling fs layer
0f388f39f924: Pulling fs layer
c2d84b110b92: Pulling fs layer
cd669d54edcc: Pulling fs layer
66808b007e5b: Pulling fs layer
c5722e324a0d: Pulling fs layer
35145d62010c: Pulling fs layer
a70da1bd0f6e: Pulling fs layer
853651883ed8: Pulling fs layer
5d1f80ccae8e: Waiting
7f11d14cb782: Waiting
5c8909a3c700: Pulling fs layer
a78096b8af42: Waiting
8f1f2601e95b: Waiting
0f388f39f924: Waiting
35145d62010c: Waiting
c2d84b110b92: Waiting
a70da1bd0f6e: Waiting
cd669d54edcc: Waiting
853651883ed8: Waiting
5c8909a3c700: Waiting
75902228e91d: Waiting
66808b007e5b: Waiting
c5722e324a0d: Waiting
4f4fb700ef54: Waiting
69cce76da85b: Waiting
c59b92a8360f: Waiting
0b78cbe1e683: Waiting
d0cb29f83d29: Waiting
919c5864bdb3: Waiting
8dca10932c1d: Waiting
5da54d72aa35: Waiting
98204272c2f5: Waiting
c232dcc02662: Verifying Checksum
c232dcc02662: Download complete
5c38f11f7a7d: Verifying Checksum
5c38f11f7a7d: Pull complete
2579e9462cd3: Verifying Checksum
2579e9462cd3: Download complete
98204272c2f5: Verifying Checksum
98204272c2f5: Download complete
2579e9462cd3: Pull complete
919c5864bdb3: Verifying Checksum
919c5864bdb3: Download complete
c232dcc02662: Pull complete
98204272c2f5: Pull complete
8dca10932c1d: Verifying Checksum
8dca10932c1d: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
0b78cbe1e683: Download complete
d0cb29f83d29: Verifying Checksum
d0cb29f83d29: Download complete
5da54d72aa35: Verifying Checksum
5da54d72aa35: Download complete
5d1f80ccae8e: Verifying Checksum
5d1f80ccae8e: Download complete
7f11d14cb782: Verifying Checksum
7f11d14cb782: Download complete
c59b92a8360f: Verifying Checksum
c59b92a8360f: Download complete
a78096b8af42: Verifying Checksum
a78096b8af42: Download complete
8f1f2601e95b: Verifying Checksum
8f1f2601e95b: Download complete
75902228e91d: Verifying Checksum
75902228e91d: Download complete
d0cb29f83d29: Pull complete
919c5864bdb3: Pull complete
8dca10932c1d: Pull complete
4f4fb700ef54: Pull complete
0f388f39f924: Verifying Checksum
0f388f39f924: Download complete
c2d84b110b92: Verifying Checksum
c2d84b110b92: Download complete
cd669d54edcc: Verifying Checksum
cd669d54edcc: Download complete
0b78cbe1e683: Pull complete
69cce76da85b: Pull complete
66808b007e5b: Verifying Checksum
66808b007e5b: Download complete
35145d62010c: Verifying Checksum
35145d62010c: Download complete
c5722e324a0d: Verifying Checksum
c5722e324a0d: Download complete
a70da1bd0f6e: Verifying Checksum
a70da1bd0f6e: Download complete
853651883ed8: Verifying Checksum
853651883ed8: Download complete
5c8909a3c700: Verifying Checksum
5c8909a3c700: Download complete
c59b92a8360f: Pull complete
5da54d72aa35: Pull complete
5d1f80ccae8e: Pull complete
7f11d14cb782: Pull complete
a78096b8af42: Pull complete
8f1f2601e95b: Pull complete
75902228e91d: Pull complete
0f388f39f924: Pull complete
c2d84b110b92: Pull complete
cd669d54edcc: Pull complete
66808b007e5b: Pull complete
c5722e324a0d: Pull complete
35145d62010c: Pull complete
a70da1bd0f6e: Pull complete
853651883ed8: Pull complete
5c8909a3c700: Pull complete
Digest: sha256:a467302d35823140d458b1697b19bea59884edb3931c06e3f0369d6284246871
Status: Downloaded newer image for ddev/ddev-dbserver-mariadb-10.11:v1.24.2
docker.io/ddev/ddev-dbserver-mariadb-10.11:v1.24.2
Building project images.....
Project images built in 2s.
 Network ddev-tryddevproject-2759_default  Created
 Container ddev-tryddevproject-2759-web  Created
 Container ddev-tryddevproject-2759-db  Created
 Container ddev-tryddevproject-2759-db  Started
 Container ddev-tryddevproject-2759-web  Started
Starting Mutagen sync process...
Mutagen sync flush completed in 1s.
For details on sync status 'ddev mutagen st tryddevproject-2759 -l'
Waiting for containers to become ready: [web db]
Starting ddev-router if necessary...
 Container ddev-router  Created
 Container ddev-router  Started


======== Project startup ========
Starting tryddevproject-2759...
2025-01-30T09:29:03.533 GetAvailableRouterPort(): Router is healthy and running
2025-01-30T09:29:03.534 GetAvailableRouterPort(): proposedPort 8080 already bound on ddev-router, accepting it
2025-01-30T09:29:03.536 GetAvailableRouterPort(): Router is healthy and running
2025-01-30T09:29:03.537 GetAvailableRouterPort(): proposedPort 4433 already bound on ddev-router, accepting it
2025-01-30T09:29:03.538 GetAvailableRouterPort(): Router is healthy and running
2025-01-30T09:29:03.54 GetAvailableRouterPort(): proposedPort 8025 already bound on ddev-router, accepting it
2025-01-30T09:29:03.541 GetAvailableRouterPort(): Router is healthy and running
2025-01-30T09:29:03.543 GetAvailableRouterPort(): proposedPort 8026 already bound on ddev-router, accepting it
2025-01-30T09:29:03.575 Pulled image for ddev/ddev-webserver:v1.24.2
2025-01-30T09:29:03.575 Pulled image for busybox:stable
2025-01-30T09:29:03.576 Pulled image for ddev/ddev-utilities
2025-01-30T09:29:03.577 Pulled image for ddev/ddev-ssh-agent:v1.24.2
2025-01-30T09:29:03.577 Pulled image for ddev/ddev-traefik-router:v1.24.2
2025-01-30T09:29:03.945 GetDockerContext: contextInfo='default unix:///Users/bob/.orbstack/run/docker.sock'
2025-01-30T09:29:03.945 Using Docker context default (unix:///Users/bob/.orbstack/run/docker.sock)
2025-01-30T09:29:04.317 chowning /mnt/ddev-global-cache and /var/lib/mysql to 501
2025-01-30T09:29:05.618 done chowning /mnt/ddev-global-cache and /var/lib/mysql to 501
Using custom web-build configuration: [
	/Users/bob/ddev_projects/tryddevproject-2759/.ddev/web-build/Dockerfile.test
]
Custom configuration is updated on restart.
If you don't see your custom configuration taking effect, run 'ddev restart'.
2025-01-30T09:29:05.626 host.docker.internal='' because no other case was discovered
2025-01-30T09:29:05.643 Using automatically detected timezone: TZ=America/Vancouver
2025-01-30T09:29:05.702 Pulled image for ddev/ddev-dbserver-mariadb-10.11:v1.24.2
2025-01-30T09:29:05.703 Pulled image for ddev/ddev-webserver:v1.24.2
2025-01-30T09:29:05.704 Pulled image for ddev/ddev-ssh-agent:v1.24.2
2025-01-30T09:29:05.705 Pulled image for ddev/ddev-traefik-router:v1.24.2
Building project images...
2025-01-30T09:29:05.741 Executing docker-compose -f /Users/bob/ddev_projects/tryddevproject-2759/.ddev/.ddev-docker-compose-full.yaml build --progress=plain
.
Project images built in 1s.
2025-01-30T09:29:07.036 Removing dangling images for the project ddev-tryddevproject-2759
2025-01-30T09:29:07.07 Executing docker-compose -f /Users/bob/ddev_projects/tryddevproject-2759/.ddev/.ddev-docker-compose-full.yaml up -d
 Container ddev-tryddevproject-2759-web  Recreate
 Container ddev-tryddevproject-2759-db  Recreate
 Container ddev-tryddevproject-2759-db  Recreated
 Container ddev-tryddevproject-2759-web  Recreated
 Container ddev-tryddevproject-2759-db  Started
 Container ddev-tryddevproject-2759-web  Started
2025-01-30T09:29:17.876 VIRTUAL_HOST=tryddevproject-2759.ddev.site for web
2025-01-30T09:29:17.876 HTTP_EXPOSE=8080:80,8025:8025 for web
2025-01-30T09:29:17.876 HTTPS_EXPOSE=4433:80,8026:8025 for web
2025-01-30T09:29:18.309 Copied /Users/bob/ddev_projects/tryddevproject-2759/.ddev/traefik:CopyIntoVolume_mwftswaekbzd into /mnt/v/traefik in 29.070708ms
2025-01-30T09:29:18.329 Exec chown -R 501 /mnt/v/traefik stdout=, stderr=, err=<nil>
2025-01-30T09:29:18.473 Copied Traefik certs in /Users/bob/ddev_projects/tryddevproject-2759/.ddev/traefik/certs to ddev-global-cache/traefik
Starting Mutagen sync process...
2025-01-30T09:29:18.542 Using Mutagen config file /Users/bob/ddev_projects/tryddevproject-2759/.ddev/mutagen/mutagen.yml

2025-01-30T09:29:19.434 Mutagen status after sync: ok
Mutagen sync flush completed in 1s.
For details on sync status 'ddev mutagen st tryddevproject-2759 -l'
2025-01-30T09:29:19.434 Running /start.sh in ddev-webserver
Waiting for containers to become ready: [web db]
2025-01-30T09:29:23.115 Copied /Users/bob/.ddev/commands:CopyIntoVolume_iceludmxhheg into /mnt/v/global-commands in 47.601542ms
2025-01-30T09:29:23.134 Exec chown -R 501 /mnt/v/global-commands stdout=, stderr=, err=<nil>
2025-01-30T09:29:23.325 Testing to see if /mnt/ddev_config is properly mounted
2025-01-30T09:29:23.407 Getting stderr output from 'log-stderr.sh --show'
Starting ddev-router if necessary...
2025-01-30T09:29:24.086 Copied /Users/bob/.ddev/traefik:CopyIntoVolume_byonealwecxj into /mnt/v/traefik in 35.7045ms
2025-01-30T09:29:24.105 Exec chown -R 501 /mnt/v/traefik stdout=, stderr=, err=<nil>
2025-01-30T09:29:24.22 Copied global Traefik config in /Users/bob/.ddev/traefik/certs to ddev-global-cache/traefik
 Container ddev-router  Running
2025-01-30T09:29:24.265 Waiting for ddev-router to become ready, timeout=60
2025-01-30T09:29:24.77 ddev-router is ready
Successfully started tryddevproject-2759
Your project can be reached at https://tryddevproject-2759.ddev.site:4433
See 'ddev describe' for alternate URLs.


======== Curl of site from inside container ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 30 Jan 2025 17:29:26 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding



======== curl -I of http://127.0.0.1:32890 (web container http docker bind port) from outside ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 30 Jan 2025 17:29:26 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding



======== curl -I of http://tryddevproject-2759.ddev.site:8080 (router http URL) from outside ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Thu, 30 Jan 2025 17:29:26 GMT
Server: nginx
Vary: Accept-Encoding



======== Full curl of http://tryddevproject-2759.ddev.site:8080 (router http URL) from outside ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   286    0   286    0     0  66838      0 --:--:-- --:--:-- --:--:-- 71500
Success accessing database... db via TCP/IP<br />
ddev is working.<br />
The output file for Discord or issue queue is in
<b>/var/folders/4f/5x5m6bnd4qgd4y_0yhj_xb3w0000gn/T/ddev-debug-test.txt</b><br />
file:///var/folders/4f/5x5m6bnd4qgd4y_0yhj_xb3w0000gn/T/ddev-debug-test.txt<br />


======== Full curl of https://tryddevproject-2759.ddev.site:4433 (router https URL) from outside ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   286    0   286    0     0   6882      0 --:--:-- --:--:-- --:--:--  6975
Success accessing database... db via TCP/IP<br />
ddev is working.<br />
The output file for Discord or issue queue is in
<b>/var/folders/4f/5x5m6bnd4qgd4y_0yhj_xb3w0000gn/T/ddev-debug-test.txt</b><br />
file:///var/folders/4f/5x5m6bnd4qgd4y_0yhj_xb3w0000gn/T/ddev-debug-test.txt<br />


======== Curl google.com to check internet access and VPN ========
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/2 200 
content-type: text/html; charset=ISO-8859-1
content-security-policy-report-only: object-src 'none';base-uri 'self';script-src 'nonce-BRtV5Mf2D8qACKGaGW7zyQ' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
accept-ch: Sec-CH-Prefers-Color-Scheme
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
date: Thu, 30 Jan 2025 17:29:26 GMT
server: gws
x-xss-protection: 0
x-frame-options: SAMEORIGIN
expires: Thu, 30 Jan 2025 17:29:26 GMT
cache-control: private
set-cookie: AEC=AVcja2eilJw1m5VmbVEDZxyFP6YYXnQGKhfkqZNdJSX3Gz_Y8tMKDqsxpg; expires=Tue, 29-Jul-2025 17:29:26 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
set-cookie: NID=521=lzYSMcPgBn1jwR5_mw_FM6YKG0o3dGWPl4ucOaKwkxg7Z2_fLxP1PbI9AiJr0vb9kBWINAX_4VA9kLw17ARzW2nhEqPcx_tdq-JdRB0e5imjQTB-BhQ8muJfw_6dSteqQPK8L02GEh86AsoaQOKtyI7okJ3bYvpt_AZ47sl_2aYBu4ZLUpCDMjfOHisMRzlKKokeQtWJ; expires=Fri, 01-Aug-2025 17:29:26 GMT; path=/; domain=.google.com; HttpOnly
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000



======== host.docker.internal status ========
PING host.docker.internal (0.250.250.254) 56(84) bytes of data.
64 bytes from host.orb.internal (0.250.250.254): icmp_seq=1 ttl=62 time=0.970 ms

--- host.docker.internal ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.970/0.970/0.970/0.000 ms


======== Project ownership on host ========
drwxr-xr-x@ 4 bob  staff  128 Jan 30 09:28 ../tryddevproject-2759


======== Project ownership in container ========
drwxr-xr-x 1 bob dialout 16 Jan 30 09:29 //var/www/html


======== In-container filesystem ========
Filesystem     Type  1K-blocks      Used Available Use% Mounted on
/dev/vdb1      btrfs 264978712 127002736 137975976  48% /var/www


======== Thanks for running the diagnostic! ========
Running ddev launch in 3 seconds
Running ddev launch
Waiting for ddev launch to complete before deleting project


Cleanup: deleting test project tryddevproject-2759
 Container ddev-tryddevproject-2759-db  Stopped
 Container ddev-tryddevproject-2759-web  Stopped
 Container ddev-tryddevproject-2759-web  Stopped
 Container ddev-tryddevproject-2759-db  Stopped
 Container ddev-tryddevproject-2759-db  Removed
 Container ddev-tryddevproject-2759-web  Removed
 Network ddev-tryddevproject-2759_default  Removed
Volume tryddevproject-2759-mariadb for project tryddevproject-2759 was deleted
Volume tryddevproject-2759-postgres for project tryddevproject-2759 was deleted
Volume tryddevproject-2759_project_mutagen for project tryddevproject-2759 was deleted
Project tryddevproject-2759 was deleted. Your code and configuration are unchanged.

Please remove the files from this test with 'rm -r ../tryddevproject-2759'
```
</details>

You may note that I have a fork of ddev-solr installed.  That is in service of a PR I'm making to the addon, and I can assure you that it does not impact the issue described below.

### Expected Behavior

I run `ddev dotenv set .ddev/.env.solr --solr_base_image "solr:8.11"` and would expect a helpful error message to tell me that the variable key does not accept underscores. and that if I'm trying to end up with a variable named `$FOO_BAR` my key should be `foo-bar`

### Actual Behavior

I get this output
> Error reading command flags: the flag must be lowercase and start with a letter, but received --solr_base_image

### Steps To Reproduce

1. in your ddev project run `ddev dotenv set .ddev/.env.solr --solr_base_image "solr:8.11"`
2. Observe that the error does not let you know that underscores are the issue in your key.

### Anything else?

I've tracked this down to https://github.com/ddev/ddev/blob/4d62d262c41b0126ae4c4298d2645606c08f952c/cmd/ddev/cmd/utils.go#L95 but that is as far as I have the time to track it so far.  If I can free up some cycles I'll submit a PR, but that seems unlikely at the moment.

Pull request:
fix: improve error message for invalid env flag, fixes #6949
## The Issue

- #6949 

## How This PR Solves The Issue

Changes the error message to make it clearer what is allowed.

## Manual Testing Instructions

```
$ ddev dotenv set .env --test_flag=foobar
Error reading command flags: the flag must consist of lowercase letters, numbers, and hyphens, and it must start with a letter, but received --test_flag=foobar
```

## Automated Testing Overview

<!-- Please describe the tests introduced by this PR, or explain why no tests are needed. -->

## Release/Deployment Notes

<!-- Does this affect anything else or have ramifications for other code? Does anything have to be done on deployment? -->


Patch:
diff --git a/cmd/ddev/cmd/import-files.go b/cmd/ddev/cmd/import-files.go
index ea45b256c..505454174 100644
--- a/cmd/ddev/cmd/import-files.go
+++ b/cmd/ddev/cmd/import-files.go
@@ -133,7 +133,7 @@ func promptForFileSource(val *string) {
 	// prompting until something is entered
 	for {
 		fmt.Print("Path to file(s): ")
-		*val = util.GetInput("")
+		*val = util.GetQuotedInput("")
 		if len(*val) > 0 {
 			break
 		}
@@ -150,7 +150,7 @@ func promptForExtractPath(val *string) {
 	// An empty string is acceptable in this case, indicating
 	// no particular extraction path
 	fmt.Print("Archive extraction path: ")
-	*val = util.GetInput("")
+	*val = util.GetQuotedInput("")
 }
 
 func init() {
diff --git a/cmd/ddev/cmd/utils.go b/cmd/ddev/cmd/utils.go
index 8053b0edc..192955e7a 100644
--- a/cmd/ddev/cmd/utils.go
+++ b/cmd/ddev/cmd/utils.go
@@ -124,7 +124,7 @@ func GetUnknownFlags(cmd *cobra.Command) (map[string]string, error) {
 		if !flagRegex.MatchString(arg) {
 			// Fail if the value is not a valid flag
 			if strings.HasPrefix(arg, "-") {
-				return unknownFlags, fmt.Errorf("the flag must be lowercase and start with a letter, but received %s", arg)
+				return unknownFlags, fmt.Errorf("the flag must consist of lowercase letters, numbers, and hyphens, and it must start with a letter, but received %s", arg)
 			}
 			// Skip if the value is not a flag, but an argument
 			continue
diff --git a/pkg/ddevapp/ddevapp.go b/pkg/ddevapp/ddevapp.go
index 7f43bd8b5..a2256c050 100644
--- a/pkg/ddevapp/ddevapp.go
+++ b/pkg/ddevapp/ddevapp.go
@@ -736,7 +736,7 @@ func (app *DdevApp) ImportDB(dumpFile string, extractPath string, progress bool,
 		output.UserOut.Println("Provide the path to the database you want to import.")
 		fmt.Print("Path to file: ")
 
-		dumpFile = util.GetInput("")
+		dumpFile = util.GetQuotedInput("")
 	}
 
 	if dumpFile != "" {
@@ -746,7 +746,7 @@ func (app *DdevApp) ImportDB(dumpFile string, extractPath string, progress bool,
 				output.UserOut.Println("You provided an archive. Do you want to extract from a specific path in your archive? You may leave this blank if you wish to use the full archive contents")
 				fmt.Print("Archive extraction path:")
 
-				extractPath = util.GetInput("")
+				extractPath = util.GetQuotedInput("")
 			} else {
 				return fmt.Errorf("unable to validate import asset %s: %s", dumpFile, err)
 			}
diff --git a/pkg/util/prompt.go b/pkg/util/prompt.go
index 6fbf6dfd6..93367136f 100644
--- a/pkg/util/prompt.go
+++ b/pkg/util/prompt.go
@@ -28,6 +28,19 @@ func GetInput(defaultValue string) string {
 	return value
 }
 
+// GetQuotedInput reads input from an input buffer in single or double quotes and returns the result as a string.
+func GetQuotedInput(defaultValue string) string {
+	input := GetInput(defaultValue)
+
+	// If the value from the input buffer is blank, then use the default instead.
+	value := strings.Trim(input, `"' `)
+	if value == "" {
+		value = defaultValue
+	}
+
+	return value
+}
+
 // Prompt gets input with a prompt and returns the input
 func Prompt(prompt string, defaultValue string) string {
 	fullPrompt := fmt.Sprintf("%s (%s)", prompt, defaultValue)


Test patch:
diff --git a/cmd/ddev/cmd/dotenv_test.go b/cmd/ddev/cmd/dotenv_test.go
index 12962468a..ecb77bcaa 100644
--- a/cmd/ddev/cmd/dotenv_test.go
+++ b/cmd/ddev/cmd/dotenv_test.go
@@ -81,11 +81,11 @@ func TestCmdDotEnvGetAndSet(t *testing.T) {
 
 	out, err = exec.RunHostCommand(DdevBin, "dotenv", "set", envFile, "--TEST", "custom value")
 	require.Error(t, err, "out=%s", out)
-	require.Contains(t, out, "the flag must be lowercase and start with a letter")
+	require.Contains(t, out, "the flag must consist of lowercase letters, numbers, and hyphens")
 
 	out, err = exec.RunHostCommand(DdevBin, "dotenv", "set", envFile, "--1test", "custom value")
 	require.Error(t, err, "out=%s", out)
-	require.Contains(t, out, "the flag must be lowercase and start with a letter")
+	require.Contains(t, out, "the flag must consist of lowercase letters, numbers, and hyphens")
 
 	out, err = exec.RunHostCommand(DdevBin, "dotenv", "get", envFile, "--test-value", "--test-value-2")
 	require.Error(t, err, "out=%s", out)
diff --git a/pkg/util/utils_test.go b/pkg/util/utils_test.go
index a36a93023..308663198 100644
--- a/pkg/util/utils_test.go
+++ b/pkg/util/utils_test.go
@@ -63,6 +63,32 @@ func TestGetInput(t *testing.T) {
 	println() // Just lets goland find the PASS or FAIL
 }
 
+// TestGetQuotedInput tests GetQuotedInput
+func TestGetQuotedInput(t *testing.T) {
+	testCases := []struct {
+		description string
+		input       string
+		expected    string
+	}{
+		{"Remove single quotes", `'/path/to/file'`, `/path/to/file`},
+		{"Remove double quotes", `"/path/to/file"`, `/path/to/file`},
+		{"Remove spaces", `  /path/to/file  `, `/path/to/file`},
+		{"Remove all quotes and spaces", `  ''' """ /path/to/file '''  """ `, `/path/to/file`},
+		{"Quotes and spaces are not removed from the middle", `/path/'" to/file`, `/path/'" to/file`},
+	}
+	for _, tc := range testCases {
+		t.Run(tc.description, func(t *testing.T) {
+			assert := asrt.New(t)
+			restoreOutput := util.CaptureUserOut()
+			scanner := bufio.NewScanner(strings.NewReader(tc.input))
+			util.SetInputScanner(scanner)
+			result := util.GetQuotedInput("nodefault")
+			assert.EqualValues(tc.expected, result)
+			_ = restoreOutput()
+		})
+	}
+}
+
 // TestCaptureUserOut ensures capturing of stdout works as expected.
 func TestCaptureUserOut(t *testing.T) {
 	assert := asrt.New(t)