container.State = executor.StateRunning
						container.ExternalIP = "1.2.3.4"
						container.Ports = []executor.PortMapping{{ContainerPort: 8080, HostPort: 61999}}
					})

					It("starts the lrp", func() {
						Expect(bbsClient.StartActualLRPCallCount()).To(Equal(1))
						lrpKey, instanceKey, netInfo := bbsClient.StartActualLRPArgsForCall(0)
						Expect(*lrpKey).To(Equal(expectedLrpKey))
						Expect(*instanceKey).To(Equal(expectedInstanceKey))
						Expect(*netInfo).To(Equal(expectedNetInfo))
					})

					Context("when starting fails because ErrActualLRPCannotBeStarted", func() {
						BeforeEach(func() {
							bbsClient.StartActualLRPReturns(models.ErrActualLRPCannotBeStarted)
						})

						It("stops the container", func() {
							Expect(containerDelegate.StopContainerCallCount()).To(Equal(1))
							delegateLogger, containerGuid := containerDelegate.StopContainerArgsForCall(0)
							Expect(containerGuid).To(Equal(container.Guid))
							Expect(delegateLogger.SessionName()).To(Equal(expectedSessionName))
						})
					})

					Context("when starting fails for an unknown reason", func() {
						BeforeEach(func() {
							bbsClient.StartActualLRPReturns(errors.New("boom"))
						})
						container.State = executor.StateRunning
						container.ExternalIP = "1.2.3.4"
						container.Ports = []executor.PortMapping{{ContainerPort: 8080, HostPort: 61999}}
					})

					It("starts the lrp", func() {
						Expect(bbsClient.StartActualLRPCallCount()).To(Equal(1))
						lrpKey, instanceKey, netInfo := bbsClient.StartActualLRPArgsForCall(0)
						Expect(*lrpKey).To(Equal(expectedLrpKey))
						Expect(*instanceKey).To(Equal(expectedInstanceKey))
						Expect(*netInfo).To(Equal(expectedNetInfo))
					})

					Context("when starting fails because ErrActualLRPCannotBeStarted", func() {
						BeforeEach(func() {
							bbsClient.StartActualLRPReturns(models.NewError(models.Error_ActualLRPCannotBeStarted, "foobar").ToError())
						})

						It("stops the container", func() {
							Expect(containerDelegate.StopContainerCallCount()).To(Equal(1))
							delegateLogger, containerGuid := containerDelegate.StopContainerArgsForCall(0)
							Expect(containerGuid).To(Equal(container.Guid))
							Expect(delegateLogger.SessionName()).To(Equal(expectedSessionName))
						})
					})

					Context("when starting fails for an unknown reason", func() {
						BeforeEach(func() {
							bbsClient.StartActualLRPReturns(errors.New("boom"))
						})