►
From YouTube: Sync on Invalid Environments
Description
Daniel Fosco (Senior Product Designer, Release) and Shinya Maeda (Senior Backend Engineer, Release) discuss the issue "Invalid Environment Not Being Created Should Be Surfaced To User"
https://gitlab.com/gitlab-org/gitlab/-/issues/21182
A
A
Before
invalid
environment,
not
being
created
should
be
surface
to
the
user,
so,
as
the
title
says,
essentially,
this
issue
is
about
pipelines
that
create
an
environment
where
there's
an
error
in
the
environment
creation,
so
it's
not
created,
even
though
the
pipeline
may
succeed,
and
that
error
is
not
surface
to
the
user
right
now,
so
we
are
discussing
ways
to
service
this
to
the
user
in
a
way
that
makes
sense.
Does
that
sound
correction?
Yeah?
Yes,.
B
Yeah
all
right,
so
so,
if
I
add
one
point,
this
issue
is
talking
about,
environment
is
not
created,
but
technically
there
are
two
buttons
that
environment
is
not
created
and
the
environment
is
not
updated.
B
B
B
B
So
here
is
a
demo
project
and
let's
set
up
the
csd
pipeline.
B
This
is
the
part
that
coming
from
branch
knee
so.
B
Yeah
yeah
branch
name
right
now,
you
will
see
so
this
is
our
cd
pipeline
we
just
created
in
for
this
project
so
for
initiating
the
review
app.
Let's
create
a
modular
cast,
I'm
going
to
edit
this
readme,
whatever
thing
and
then
future
branch.
B
There
you
go
so
I
created
this
much
request
and
then
pipeline
runs.
So,
as
you
can
see
in
that
this
review
branch
name,
this
environment
is
created
successfully.
So
this
is
a
expected
behavior.
Everything
went
well,
but.
B
B
You
know
that
if
things
goes
well,
users
should
see
environment,
slash
future
dash
exclamation
mark,
but
the
ex
crowmation
market
is
not
allowed
for
environment
records,
so
the
expected
environment
is
not
created,
so
this
is
exactly
the
case
that
environments
is
not
created
with
the
pipeline.
B
So
the
first
question
is
that
how
do
we
present
this
error?
Surface
dcl
for
users.
A
Right,
even
before
that,
you
probably
have
the
answer
to
that
question.
But
why
are
the
the
character
records
for
environments?
Not
the
same
set
as
for
the
forget,
like
is?
Is
that
a
change
that
we
could
make.
B
I
I
don't
know
the
reason
just
I
think
it
makes
sense.
The
like
your
point
is
rory
you're,
making
very
good
point
that
maybe
we
should
make
that
the
ability
to
set
that
use
the
same
validation
between
give
the
breath
and
the
environment
name
but
yeah.
It
is
what
it
is
today.
B
A
A
B
Yeah,
I
just
remember
that
why
we
don't
a
lot
of
special
keywords
in
environments,
that
environment
has
a
feature
to
generalize,
slug,
so
url
for
environment.
So
this
url
doesn't
allow
special
keywords,
all
right,
so
yeah,
that's
a
reason.
B
If
you
don't
mind,
I
can
continue
to
the
environment,
update
failure.
So
do
you
want
to
spend
time
on
this.
B
In
the
cd
pipeline,
users
can
also
set
the
url
something
like
https.
What's
what's
a
good
example
for
this,
oh
yeah.
B
So,
for
example,
like
a
setting-
you
are
like
this,
but
you
could
be,
could
be
in
buried.
Sometimes,
for
example,.
B
B
Let's,
let's
back
to
the
first
module,
I
guess
that
created
environment
successfully.
B
Okay,
now,
the
second
pipeline
is.
B
Running
right,
then,.
B
Okay,
so
this
is
a
first
module.
The
review
app
that's
created
by
the
first
smart
request,
and
then
we
just
set
the
url
right,
the
google
website
and
then,
since
ul,
is
correctly
set
to
this
environment.
Record
users
see
this
view
deployment
button
to
go
to
this
linked
website.
B
Back
to
the
the
last
smart
request,
we
created.
B
The
url
error
cannot
be
set
to
you
environment.
Therefore,
you
said:
don't
you
either?
Don't
see
this
button,
the
jump
to
the
deployment
environment
page
button,
so
the
system
tried
to
update
the
environment
record
after
the
deployment
finished,
but
that
since
url
is
invalid,
this
system
failed
in
this
case
implicitly
failed.
So
you
know
users
will
be
confused
that
hey.
I
just
set
the
url
for
the
this
environment,
but
I
don't
see
anything.
I
don't
see
even
errors
what's
going
on
here.
B
B
Like
this,
is
this
valid
ul
or
whatnot?
It's.
I
think
this
is
invalid,
because
gitlab
internally
doesn't
allow
http
protocol
only
https,
so.
B
Like
in
this
case,
users
will
be
really
confused,
like
at
the
class.
The
url
looks
valid,
but
something
failed
in
the
back
end
yeah.
That's
how
the
the
second
case
that
environment
update
failure
and
then
back
to
the
issue
that
maybe
a
you
can
take
it
over,
though
how
we,
you
know,
service
these
llrs
to
users
that
so
that
they
can
take
an
action,
but
at
least
they
have
an
idea
like
something
went
wrong,
and
then
they
yeah.
B
A
Yeah,
I
think
the
first
thing
that
comes
to
mind
for
me
is
is
going
over
the
current
behavior
of
the
the
pipelines
when
these
things
happen.
So
right
now,
on
all
of
these
cases,
where
there
was
an
error
to
the
department
being
created,
the
pipeline
still
succeeded
right.
Yes,
yes,
failure
to
create
an
environment
is
not
considered
a
failure
by
by
our
rules
on
on
running
the
jobs.
So
the
first
thing
I
would
ask
is
that
that
is
that
doesn't
seem
to
be
the
ideal
state
of
things.
A
B
Is
it
tricky
that
when
job
succeeded,
it
mostly
means
that
job
script
succeeded
so
in
this
case
job
scripts?
We
just
implemented
the
dummy
diplomatic
code,
though
the
scripts
really
succeeded,
so
the
simplest
idea
would
be
for
the
create
a
create
problem.
The
the
first
problem-
it's
just
failed.
B
Maybe
it
makes
sense
to
just
fail
the
deployment,
the
job
sorry
for
smart
requesting,
which
one
wait,
wait
yeah
this
one,
the
second
module
is
we
created
that
includes
this
invalid
character.
Maybe
these
deployment
jobs
should
fail,
and
then
we
show
a
message
that
environment,
failed
environment
creation
failed
because
this
character.
A
For
for
me,
it
makes
sense
that
traditionally,
jobs
are
were
used
for
testing
and
ai
purposes,
so
it
makes
sense
that
the
success
of
the
job
is
a
reflection
of
the
success
of
the
script
that
the
job
is
running.
But
if
you're
talking
about
the
deployment
script,
if
the
deployment
script
succeeds,
but
the
deployment
action
does
not,
then
then,
then
the
deployment
job
failed
right.
A
It's
a
matter
for
us
to
deciding
if
we
want
to
fully
fail
that
job
or
if
we
want
to
introduce
some
distinction.
I
think
it
was
you
that
mentioned
past
with
errors
that
we
currently
don't
have.
We
just
have
passed
with
warnings
right.
I
think
the
the
way
these
are
set
up
if
we
abstract
away
from
from
the
specific
errors,
it's
saying
like
the
script
succeeded,
but
the
infrastructure
around
it
failed,
failed
right.
A
To
the
script
has
failed,
so
maybe
it
is
the
case
of
either
failing
everything
like
if
a
part
external
to
the
script
fails
on
a
deployment,
job
or
any
job,
then
we
fail
the
whole
job
or
we
implement
some
sort
of
state
that
is
passed
with
errors
to
tell
the
user
hey
it
passed
with
errors,
and
what
that
means
is
the
actual
script
of
the
job
is
successful,
like
you,
don't
have
to
fix
your
code
or
fix
the
testing
script,
but
but
external
factors
failed,
and
these
are
the
factors.
B
I
agree
with
that.
The
maybe
the
first
proposal
for
this
issue
that
we
should
fail.
The
deployment
job.
B
Yes,
yes,
yes,
the
only
concern
in
this
path
is
that
it's
going
to
be.
It
could
be
the
disturbing
change
for
users,
some
users,
for
example.
We
are
recording
currently
tracking
the
this
case
in
this
era
tracking
system,
and
we
can
see
that,
like
300
600,
000
events
every
day,
users
are
wrongly
using
this
after
we
started
failing
these
jobs.
B
These
users
are
gonna
face,
like
maybe
they're,
be
surprised
that
why
my
deep
limiters
suddenly
started,
failing,
which
is
correct
behavior,
but
you
know,
the
tricky
problem
is
how
we
gracefully
roll
up
this
change.
We
definitely
use
a
future
flag,
at
least
maybe
communicate
with
customers
in
advance.
Yeah.
Probably
that
actually
is
actions
will
be
needed.
B
Well,
I
think
we
can
almost
ugly
with
the
first
the
proposal
for
the
first
case,
though
kind
of
the
you
know,
I
don't
really
have
a
good
idea
how
we
address
the
second
case,
the
which
is
up
environment,
update
failure,
so
in
this
demo
project
it's
a
third
launch
request.
A
So
remind
me,
which
case
was
this
like
which
error.
B
The
second
case
that
environment
update,
failed
environment
creation,
succeeded,
but
environment
update
failed
because
in
this
case,
environment
url
is
invalid.
Yes,.
A
Right
yeah,
I
think
I
mean
if
it
failed
to
update,
then
then
it
should
be
a
failure
still.
A
Because
if
you
think
about
it,
sure
the
the
the
the
deployment
the
deployable
artifact
was
deployed
right,
the
environment
was
updated,
but
then
we
broke
the
url,
so
this
might
break
other
things
in
the
system,
like
sure
maybe
for
their
system.
Http
is
fine,
so
nothing
breaks
in
there
and
it's
broken
from
the
gitlab
perspective,
but
we
don't
know
that
right
and
the
error
might
be
first,
the
first
variation
we
did
like
with
a
completely
environmental
url,
so
we
currently
have
no
way
of
knowing
that
so
out
of
safety.
A
I
would
fail
everything,
but
I
think
this
is
also
a
product
decision
with
how
we
want
to
approach
it,
and
if
we
want
to
go
this
route
just
figuring
out,
how
do
we
communicate
with
our
user
base
to
make
sure
that
it's
almost
like
a
deprecation
in
a
way
like
we
have
to?
Let
them
know
in
advance
that
something
that
was
currently
working,
at
least
from
their
perspective,
will
no
longer
be
working
right.
We
will
start
breaking
something
that
we
were
communicating
was
not
breaking,
so
their
errors
will
be
blown
up
so.
B
Yeah
yeah
yeah,
the
the
tricky
point
is
that
the
error
is
hard,
whether
heart
failure
or
soft
software
or
hot
era.
I
don't
know
if
all
inbound
cases
is
really
critical
for
users
like
we're
starting
making
it
harder
failure,
though
yeah
so,
which.
A
A
B
B
What
are
you
just
referring?
It's
project
configuration
project
level
configuration
not
future
flag.
Future
flag
is
the
the
kind
of
similarity
project
level
configuration,
but
only
gitlab
can
yeah
control,
so
it's
yeah
we
can.
We
can
also
go
down
this
path,
like
maybe
the
creator
setting
csd
and
then
like
fail
fail.
I
don't
know
check
but
could
get
another
checkbox
that
failed
deployment
job.
If
and
if
the
system
failed
environment
creation
will
update.
That's
also
yeah
one
of
the
approaches.
A
Yeah
so
just
to
start
wrapping
it
up
because
we're
almost
the
time,
I
think
the
options
that
we
have
are
either
to
make
make
environment
creation,
failure
and
environment
update,
update
failure
to
fail
the
jobs
entirely
like
it
goes
red,
but
then
we
have
to
figure
out
how
to
communicate
that
to
our
users.
B
So
two
comments:
introducing
a
new
status
is
definitely
the
listing.
The
last
result
we
did.
We
do
not
want
to
introduce
yet
another
status.
It's
a
very
complicated
big
change,
right
yeah,
and
the
second
thing
is
that,
should
we
split
this
issue
into
two
like
one
is
create
one
and
then
the
other
one
is
update
failure.
It
seems,
like
you
know,
for
the
cleared
case,
create
a
failure
case.
We
almost
have
a.
We
were
also
certain
that
the
failing
job
would
be
the
way
to
go.
B
A
I
mean
if,
if
you
think
it's
it's
valid,
we
can
do
it.
I
don't
know
from
the
back
in
perspective
if
it's,
if
it's
worth
separating,
but
if
you
think
so
it
makes
sense.
Yeah,
I
think,
from
the
from
the
experience
perspective,
the
experience
should
be
the
same.
A
B
Yes,
yes,
it
should
be
surfaced.
Yes,.
A
Yeah
so
let's,
let's
then
reconvene
these
these
ideas
in
the
thread.
I
can
comment
them
over
there
and
then
you
can
correct
anything,
that's
necessary,
but
then,
depending
on
on
the
feedback
that
they
give,
then
we
move
forward
with
a
proposal
and
split
the
issues.
A
A
B
B
Yeah
yeah,
these
scripts
are
just
directly
reflects
what
executed
in
github
runner.
So
this
is
a
kind
of
untouchable
place
from
environment
perspective,
though
we
can
show
additional
information
around
here.
It's
basically
fetching
database
records
through
the
build
job
pipeline,
jobs
and
environments
record,
and
we
can
show
this
type
of
information.
A
Cool
yeah.
I
think
it
would
be
nice
to
show
in
the
log
itself
but
yeah
if
it's
not
possible,
then
adding
an
alert
on
top
also
works.
Well,.
A
Cool
yeah,
I
think
that's
it
for
me.
Do
you
have
anything
else.
A
Oh
and
I'll
also
create
an
issue
for
the
open
live
environment
button
that
disappears
if
the
url
is
invalid.
I
think
that's.